Создание консоли на Java - PullRequest
       16

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

6 голосов
/ 27 апреля 2010

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

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

Ответы [ 5 ]

6 голосов
/ 27 апреля 2010

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

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

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

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

5 голосов
/ 27 апреля 2010

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

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

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

4 голосов
/ 27 апреля 2010

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

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

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

0 голосов
/ 27 апреля 2010

См. JConsole , которая является общей консолью в Java, используемой, например, groovy. Или смотрите заводной прямо.

0 голосов
/ 27 апреля 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...