В чем разница между java
, javaw
и javaws
?
Я обнаружил, что под Windows большинство Java начали использовать javaw
.
В чем разница между java
, javaw
и javaws
?
Я обнаружил, что под Windows большинство Java начали использовать javaw
.
Ответы:
Смотрите документацию для:
java
команда 1 / javaw
команда 2
java
Инструмент запускает приложение Java. Это делается путем запуска среды выполнения Java, загрузки указанного класса и вызоваmain
метода этого класса .- Команда
javaw
идентичнаjava
, за исключением того, что сjavaw
не существует связанного консольного окна. Используйте,javaw
если вы не хотите, чтобы окно командной строки отображалось.
javaws
команда , то " Java Web Start команду"
Команда
javaws
запускает Java Web Start, который является эталонной реализацией протокола запуска сети Java (JNLP). Java Web Start запускает приложения / апплеты Java, размещенные в сети.
Если указан файл JNLP,javaws
запустится приложение / апплет Java, указанный в файле JNLP.
Панельjavaws
запуска имеет набор параметров, которые поддерживаются в текущем выпуске. Однако параметры могут быть удалены в будущем выпуске.
См. Также Примечания к выпуску JDK 9 Устаревшие API, функции и параметры :
Технологии развертывания Java устарели и будут удалены в будущем выпуске.
Функции Java Applet и WebStart, включая API-интерфейс апплета, подключаемый модуль Java, средство просмотра апплетов Java, JNLP и Java Web Start, включаяjavaws
инструмент , в JDK объявлены устаревшими. 9 и будут удалены в будущем выпуске.
Java: Исполнитель приложения Java, который связан с консолью для отображения вывода / ошибок
Ява: ( Java оконный ) исполнитель приложения, не связанный с консолью. Так что нет отображения вывода / ошибок. Это может быть использовано, чтобы молча выдвинуть вывод / ошибки в текстовые файлы. Он в основном используется для запуска приложений на основе графического интерфейса.
javaws: ( Java web start ) для загрузки и запуска распределенных веб-приложений. Опять же, консоль не связана.
Все они являются частью JRE и используют одну и ту же JVM.
javaw
должно быть в моем PATH? (Это не так)
java.exe связан с консолью, тогда как javaw.exe не имеет такой ассоциации. Таким образом, при запуске java.exe автоматически открывается окно командной строки, в котором отображаются потоки вывода и ошибок.
Команда javaw идентична java, за исключением того, что у javaw нет ассоциированного окна консоли. Используйте javaw, если вы не хотите, чтобы отображалось окно командной строки. Javaw Launcher отображает окно с информацией об ошибке, если это не удается.
Я подозреваю, что javaws предназначен для приложений запуска Java, веб-приложений или чего-то в этом роде.
Я проверил, что перенаправление вывода работает с javaw
:
javaw -cp ... mypath.MyClass ... arguments 1>log.txt 2>err.txt
Это означает, что если приложение Java печатает что-либо через System.out или System.err, оно записывается в эти файлы, также как и с использованием Java (без w
). Особенно при запуске java
JRE может записывать ошибки запуска (класс не найден) в канал вывода ошибок. В этом отношении важно знать об ошибках. Я предлагаю использовать перенаправление консоли в любом случае, еслиjavaw
вызывается.
В противоположность, если вы используете
start java .... 1>log.txt 2>err.txt
С помощью start
команды консоли Windows перенаправление консоли не работает java
ни сjavaw
.
Объяснение, почему это так: я думаю, что это javaw
открывает внутренний процесс в ОС (адекватно с использованием класса java.lang.Process) и передает известное перенаправление вывода этому процессу. Если в командной строке перенаправление не задано, ничего не перенаправляется, и внутренний запущенный процесс javaw
не имеет консольных выходов. Поведение для java.lang.Process аналогично. Виртуальная машина также может использовать эту внутреннюю функцию javaw
.
Если вы используете 'start', консоль Windows создает новый процесс для Windows, чтобы выполнить команду после запуска, но этот механизм, к сожалению, не использует данное перенаправление для запущенного подпроцесса.
java -cp ...
. Поскольку почти никто не хочет этого,javaw
выбор состоит в том, чтобы заставить это раздражающее окно исчезнуть.