Создание консоли в Java

Когда я пытаюсь использовать java.lang. System.console (), я получаю нулевого указателя. Я могу все еще записать в и читать из в, но это только работает, когда я работаю прямо от моего IDE. Когда я выполняю .jar файл непосредственно, ничего не происходит. Как может я создавать консоль как, я видел бы станд. использования:: суд для использования в Java?

Править: Я надеялся просто создать один, вместо того, чтобы понять, почему я не имею один, так как мне нужно один для операции моей программы.

6
задан Puppy 27 April 2010 в 17:32
поделиться

5 ответов

Возможно, вы пытаетесь получить консоль двойным щелчком по банке.

Попробуйте создать командный файл, который открывает для вас консоль.

Однако вы можете создать консоль с помощью Swing и перенаправить туда стандартный ввод / вывод.

Источник: Создание консоли Java внутри панели графического интерфейса

6
ответ дан 8 December 2019 в 17:19
поделиться

java.lang.System.out и java.lang.System.in - это потоки ввода / вывода для консоли. доступ. Java не создает «консоль», но позволяет вам взаимодействовать с потоками ввода-вывода, предоставляемыми операционной системой.

Когда вы запустите его из файла jar (например, щелкнув по нему из папки), вы получите потоки ввода-вывода графического интерфейса, которые нигде не отображаются.

Попробуйте создать пакетный файл с командой java -jar. Когда вы запустите командный файл, вы должны увидеть командное окно. Я предполагаю, что окна здесь. Другой способ - запустить cmd.exe напрямую с аргументами, которые не закрывают окно, например, cmd.exe / c.

4
ответ дан 8 December 2019 в 17:19
поделиться

См. JConsole , которая представляет собой обычную консоль в java, используемую, например, Groovy. Или посмотрите прямо на Groovy.

-1
ответ дан 8 December 2019 в 17:19
поделиться

Вместо того, чтобы запускать файл jar напрямую, откройте консоль (вы не указали операционную систему, но это будет командная строка в Windows и консоль в * Nix или Терминал в OS X). Затем запустите java -jar /path/to/your.jar.

Эквивалент std :: cout в Java будет System.out , как вы, вероятно, уже знаете.

РЕДАКТИРОВАТЬ: Что касается вашего редактирования, для этого есть код. Например, вы можете использовать Swing . Есть даже ответ StackOverflow с несколькими рабочими образцами кода.

0
ответ дан 8 December 2019 в 17:19
поделиться

Как именно вы запускаете файл JAR? Это было бы ожидаемым поведением при двойном щелчке по его значку в проводнике Windows, как намекала Келли, но не при запуске его из командной строки.

Из записи консоли в API (выделено мной):

Наличие у виртуальной машины консоли зависит от базовой платформы, а также от способа, которым вызывается виртуальная машина . Если виртуальная машина запускается из интерактивной командной строки без перенаправления стандартных потоков ввода и вывода, ее консоль будет существовать и обычно будет подключена к клавиатуре и дисплею, с которого была запущена виртуальная машина. Если виртуальная машина запускается автоматически, например, планировщиком фоновых заданий, то обычно у нее не будет консоли.

5
ответ дан 8 December 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: