Diferença entre java.exe e javaw.exe

143

Recentemente, observei que alguns aplicativos estão sendo executados javaw(não dentro java). Qual é a diferença entre eles e como posso executar o meu aplicativo Swing on javaw?

asela38
fonte
1
Pergunta semelhante e boa resposta aqui: stackoverflow.com/a/8194750/99717 . Note-se que a questão há também pergunta sobre javaws.exe, por isso não é tecnicamente uma duplicata ...
Hawkeye Parker

Respostas:

75

java.exe é o comando em que aguarda a conclusão da aplicação até que seja necessário o próximo comando. javaw.exe é o comando que não aguardará a conclusão do aplicativo. você pode prosseguir com outros comandos.

GuruKulki
fonte
2
não javaw.exe também não mostram a saída do console youtube.com/watch?v=AQUAyJYwJ6Q 00:57 i.imgur.com/TGsm45f.png
barlop
1
Esta resposta está incorreta. javaw.exe não esperar até que os concluída programa. Ele pode ser usado com segurança como parte do .batscript, por exemplo, e aguardará. No entanto, quando você inicia manualmente programas que não são do console cmd.exe, o cmd.exeservidor não espera e retorna ao prompt de comando imediatamente. Tente com notepad.exevsping 8.8.8.8
Codeguard
115

java.exeé o aplicativo de console e o aplicativo do javaw.exeWindows (sem console). Você não pode ter Consolecom javaw.exe.

Chandra Patni
fonte
4
Acrescentarei que "o aplicativo do console" aqui não significa necessariamente que "isso foi executado a partir de um console", apenas que java.exeé permitido acessar seu console. A execução de um applet a partir de um navegador no Windows, por exemplo, sempre o utiliza, java.exemesmo que meu Painel de Controle Java esteja definido como Ocultar a janela do console ou mesmo Não iniciar uma janela do console .
Ti Strga
Após resposta parece melhor para mim e tem referências de documentação Java: stackoverflow.com/a/8194750/99717
Hawkeye Parker
40

A diferença está no subsistema que cada executável tem como destino.

  • java.exesegmenta o CONSOLEsubsistema.
  • javaw.exesegmenta o WINDOWSsubsistema.
David Heffernan
fonte
13

O comando javaw.exe é idêntico ao java.exe, exceto que com o javaw.exe não há uma janela do console associada

Chathuranga Chandrasekara
fonte
6
Tecnicamente mais correto: com javawnão há console associado . A janela não é necessariamente criada (por exemplo, quando você executa a partir de uma janela de console existente ou completamente em segundo plano).
Joey