Qual é a diferença entre java, javawe javaws?
Eu encontrei no Windows a maioria do Java é iniciada javaw.
Qual é a diferença entre java, javawe javaws?
Eu encontrei no Windows a maioria do Java é iniciada javaw.
Respostas:
Consulte a documentação para:
javacomando 1 / javawcomando 2
- A
javaferramenta inicia um aplicativo Java. Isso é feito iniciando um ambiente de tempo de execução Java, carregando uma classe especificada e chamando omainmétodo dessa classe .- O
javawcomando é idêntico ajava, exceto pelo fato dejavawnão haver uma janela do console associada. Usejavawquando você não quiser que uma janela do prompt de comando apareça.
javawscomando , o " comando Java Web Start "
O
javawscomando inicia o Java Web Start, que é a implementação de referência do Java Network Launching Protocol (JNLP). O Java Web Start lança aplicativos / applets Java hospedados em uma rede.
Se um arquivo JNLP for especificado, ativarájavawso aplicativo / applet Java especificado no arquivo JNLP.
Ojavawsiniciador tem um conjunto de opções suportadas na versão atual. No entanto, as opções podem ser removidas em uma versão futura.
Consulte também APIs, recursos e opções descontinuadas das notas de versão do JDK 9 :
As tecnologias de implantação Java estão obsoletas e serão removidas em uma versão futura das funcionalidades
Java Applet e WebStart, incluindo a API Applet, o plug-in Java, o Java Applet Viewer, JNLP e Java Web Start, incluindo ajavawsferramenta , estão obsoletas no JDK 9 e será removido em uma versão futura.
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.
javawdeveria 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.
O comando javaw é idêntico ao java, exceto que o javaw não possui uma janela do console associada. Use javaw quando não desejar que uma janela do prompt de comando seja exibida. O lançador javaw exibe uma janela com informações de erro, se falhar.
E o javaws é para aplicativos, applets ou algo do tipo Java Web Start, eu suspeitaria.
Eu verifiquei se o redirecionamento de saída funciona com javaw:
javaw -cp ... mypath.MyClass ... arguments 1>log.txt 2>err.txt
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 partida java, 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, se javawfor chamado.
Ao contrário, se você usar
start java .... 1>log.txt 2>err.txt
Com o startcomando do console do Windows , o redirecionamento de saída do console não funciona javanem com javaw.
Explicação do motivo: acho que javawabre 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 para javawnão terá nenhuma saída do console. O comportamento do java.lang.Process é semelhante. A máquina virtual também pode usar esse recurso interno javaw.
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.
java -cp .... Como quase ninguém quer isso,javawé a opção de fazer essa janela irritante desaparecer.