В чем разница между java
, javaw
и javaws
?
Я обнаружил, что под Windows большинство Java начали использовать javaw
.
java
java-web-start
javaw
user705414
источник
источник
java -cp ...
. Поскольку почти никто не хочет этого,javaw
выбор состоит в том, чтобы заставить это раздражающее окно исчезнуть.Ответы:
Смотрите документацию для:
java
команда 1 /javaw
команда 2javaws
команда , то " Java Web Start команду"См. Также Примечания к выпуску JDK 9 Устаревшие API, функции и параметры :
источник
Java: Исполнитель приложения Java, который связан с консолью для отображения вывода / ошибок
Ява: ( Java оконный ) исполнитель приложения, не связанный с консолью. Так что нет отображения вывода / ошибок. Это может быть использовано, чтобы молча выдвинуть вывод / ошибки в текстовые файлы. Он в основном используется для запуска приложений на основе графического интерфейса.
javaws: ( Java web start ) для загрузки и запуска распределенных веб-приложений. Опять же, консоль не связана.
Все они являются частью JRE и используют одну и ту же JVM.
источник
javaw
должно быть в моем PATH? (Это не так)java.exe связан с консолью, тогда как javaw.exe не имеет такой ассоциации. Таким образом, при запуске java.exe автоматически открывается окно командной строки, в котором отображаются потоки вывода и ошибок.
источник
От http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.user.aix32.60%2Fuser%2Fjava.html :
Я подозреваю, что javaws предназначен для приложений запуска Java, веб-приложений или чего-то в этом роде.
источник
Я проверил, что перенаправление вывода работает с
javaw
:Это означает, что если приложение Java печатает что-либо через System.out или System.err, оно записывается в эти файлы, также как и с использованием Java (без
w
). Особенно при запускеjava
JRE может записывать ошибки запуска (класс не найден) в канал вывода ошибок. В этом отношении важно знать об ошибках. Я предлагаю использовать перенаправление консоли в любом случае, еслиjavaw
вызывается.В противоположность, если вы используете
С помощью
start
команды консоли Windows перенаправление консоли не работаетjava
ни сjavaw
.Объяснение, почему это так: я думаю, что это
javaw
открывает внутренний процесс в ОС (адекватно с использованием класса java.lang.Process) и передает известное перенаправление вывода этому процессу. Если в командной строке перенаправление не задано, ничего не перенаправляется, и внутренний запущенный процессjavaw
не имеет консольных выходов. Поведение для java.lang.Process аналогично. Виртуальная машина также может использовать эту внутреннюю функциюjavaw
.Если вы используете 'start', консоль Windows создает новый процесс для Windows, чтобы выполнить команду после запуска, но этот механизм, к сожалению, не использует данное перенаправление для запущенного подпроцесса.
источник