Qual é a diferença entre java
, javaw
e javaws
?
Eu encontrei no Windows a maioria do Java é iniciada javaw
.
java
java-web-start
javaw
user705414
fonte
fonte
java -cp ...
. Como quase ninguém quer isso,javaw
é a opção de fazer essa janela irritante desaparecer.Respostas:
Consulte a documentação para:
java
comando 1 /javaw
comando 2javaws
comando , o " comando Java Web Start "Consulte também APIs, recursos e opções descontinuadas das notas de versão do JDK 9 :
fonte
java: executor de aplicativo Java associado a um console para exibir resultados / erros
javaw: executor de aplicativo (com janela Java ) não associado ao console. Portanto, nenhuma exibição de saída / erros. Pode ser usado para enviar silenciosamente a saída / erros para arquivos de texto. É usado principalmente para iniciar aplicativos baseados em GUI.
javaws: ( Java web start ) para baixar e executar os aplicativos da web distribuídos. Novamente, nenhum console está associado.
Todos fazem parte do JRE e usam a mesma JVM.
fonte
javaw
deveria estar no meu caminho? (Não é)O java.exe está associado ao console, enquanto o javaw.exe não possui essa associação. Portanto, quando o java.exe é executado, ele abre automaticamente uma janela de prompt de comando onde os fluxos de saída e erro são mostrados.
fonte
Em http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.user.aix32.60%2Fuser%2Fjava.html :
E o javaws é para aplicativos, applets ou algo do tipo Java Web Start, eu suspeitaria.
fonte
Eu verifiquei se o redirecionamento de saída funciona com
javaw
:Isso significa que, se o aplicativo Java imprimir alguma coisa via System.out ou System.err, ele será gravado nesses arquivos, como também com o uso de java (sem
w
). Especialmente na partidajava
, o JRE pode gravar erros de partida (classe não encontrada) no tubo de saída de erro. A este respeito, é essencial conhecer os erros. Sugiro usar o redirecionamento do console em qualquer caso, sejavaw
for chamado.Ao contrário, se você usar
Com o
start
comando do console do Windows , o redirecionamento de saída do console não funcionajava
nem comjavaw
.Explicação do motivo: acho que
javaw
abre um processo interno no sistema operacional (adequado usando a classe java.lang.Process) e transfere um redirecionamento de saída conhecido para esse processo. Se nenhum redirecionamento for fornecido na linha de comando, nada será redirecionado e o processo interno iniciado parajavaw
não terá nenhuma saída do console. O comportamento do java.lang.Process é semelhante. A máquina virtual também pode usar esse recurso internojavaw
.Se você usar 'start', o console do Windows criará um novo processo para o Windows executar o comando após o início, mas esse mecanismo não usa um determinado redirecionamento para o subprocesso iniciado, infelizmente.
fonte