Когда я пытаюсь использовать java.lang. System.console (), я получаю нулевого указателя. Я могу все еще записать в и читать из в, но это только работает, когда я работаю прямо от моего IDE. Когда я выполняю .jar файл непосредственно, ничего не происходит. Как может я создавать консоль как, я видел бы станд. использования:: суд для использования в Java?
Править: Я надеялся просто создать один, вместо того, чтобы понять, почему я не имею один, так как мне нужно один для операции моей программы.
Возможно, вы пытаетесь получить консоль двойным щелчком по банке.
Попробуйте создать командный файл, который открывает для вас консоль.
Однако вы можете создать консоль с помощью Swing и перенаправить туда стандартный ввод / вывод.
Источник: Создание консоли Java внутри панели графического интерфейса
java.lang.System.out
и java.lang.System.in
- это потоки ввода / вывода для консоли. доступ. Java не создает «консоль», но позволяет вам взаимодействовать с потоками ввода-вывода, предоставляемыми операционной системой.
Когда вы запустите его из файла jar (например, щелкнув по нему из папки), вы получите потоки ввода-вывода графического интерфейса, которые нигде не отображаются.
Попробуйте создать пакетный файл с командой java -jar. Когда вы запустите командный файл, вы должны увидеть командное окно. Я предполагаю, что окна здесь. Другой способ - запустить cmd.exe напрямую с аргументами, которые не закрывают окно, например, cmd.exe / c.
См. JConsole , которая представляет собой обычную консоль в java, используемую, например, Groovy. Или посмотрите прямо на Groovy.
Вместо того, чтобы запускать файл jar напрямую, откройте консоль (вы не указали операционную систему, но это будет командная строка в Windows и консоль в * Nix или Терминал в OS X). Затем запустите java -jar /path/to/your.jar
.
Эквивалент std :: cout
в Java будет System.out
, как вы, вероятно, уже знаете.
РЕДАКТИРОВАТЬ: Что касается вашего редактирования, для этого есть код. Например, вы можете использовать Swing . Есть даже ответ StackOverflow с несколькими рабочими образцами кода.
Как именно вы запускаете файл JAR? Это было бы ожидаемым поведением при двойном щелчке по его значку в проводнике Windows, как намекала Келли, но не при запуске его из командной строки.
Из записи консоли в API (выделено мной):
Наличие у виртуальной машины консоли зависит от базовой платформы, а также от способа, которым вызывается виртуальная машина . Если виртуальная машина запускается из интерактивной командной строки без перенаправления стандартных потоков ввода и вывода, ее консоль будет существовать и обычно будет подключена к клавиатуре и дисплею, с которого была запущена виртуальная машина. Если виртуальная машина запускается автоматически, например, планировщиком фоновых заданий, то обычно у нее не будет консоли.