Разница между java.exe и javaw.exe

143

Недавно я заметил, что некоторые приложения работают javaw(не в java). В чем разница между ними и как мне запустить приложение Swing javaw?

asela38
источник
1
Подобный вопрос и хороший ответ здесь: stackoverflow.com/a/8194750/99717 . Обратите внимание, что вопрос здесь также касается javaws.exe, поэтому технически не является дубликатом ...
Hawkeye Parker

Ответы:

75

java.exe - это команда, которая ожидает завершения работы приложения до следующей команды. javaw.exe - это команда, которая не будет ждать завершения приложения. Вы можете пойти дальше с другими командами.

GuruKulki
источник
2
javaw.exe также не отображает консольный вывод youtube.com/watch?v=AQUAyJYwJ6Q 0:57 i.imgur.com/TGsm45f.png
barlop
1
Этот ответ неверен. javaw.exe действительно ожидает завершения программы. .batНапример, его можно безопасно использовать как часть сценария, и он будет ждать. Однако, когда вы вручную запускаете не консольные программы cmd.exe, cmd.exeони не будут ждать и сразу же возвращаются в командную строку. Попробуйте это с notepad.exevsping 8.8.8.8
Codeguard
115

java.exeявляется консольным приложением, в то время как javaw.exeявляется приложением для Windows (без консоли). Вы не можете иметьConsole с javaw.exe.

Чандра Патни
источник
4
Я добавлю, что «консольное приложение» здесь не обязательно означает, что «это было запущено из консоли», только то, что java.exeразрешено получать доступ к его консоли. Например, java.exeпри запуске апплета из браузера в Windows всегда используется, даже если моя панель управления Java настроена на « Скрыть окно консоли» или даже « Не запускать окно консоли» .
Ti Strga
Следующий ответ кажется мне лучше и содержит ссылки на документацию по Java: stackoverflow.com/a/8194750/99717
Hawkeye Parker
40

Разница заключается в подсистеме, на которую ориентирован каждый исполняемый файл.

  • java.exeнацеливается на CONSOLEподсистему.
  • javaw.exeнацеливается на WINDOWSподсистему.
Дэвид Хеффернан
источник
13

Команда javaw.exe идентична команде java.exe, за исключением того, что с javaw.exe нет связанного окна консоли

Чатуранга Чандрасекара
источник
6
Технически правильнее: с javawне связана консоль . Окно не обязательно создается (например, при запуске из существующего окна консоли или полностью в фоновом режиме).
Джои