Quelle est la différence entre java
, javaw
et javaws
?
J'ai constaté que sur Windows, la plupart des utilisations de Java se font en utilisant javaw
.
java
java-web-start
javaw
user705414
la source
la source
java -cp ...
. Comme presque personne ne veut cela,javaw
c'est le choix de faire disparaître cette fenêtre ennuyeuse.Réponses:
Consultez la documentation des outils Java pour:
java
commande 1 /javaw
commande 2javaws
commande , la " commande Java Web Start "Voir aussi JDK 9 Release Notes API, fonctionnalités et options obsolètes :
la source
java: exécuteur d'application Java associé à une console pour afficher la sortie / les erreurs
javaw: exécuteur d'application ( fenêtre Java ) non associé à la console. Donc pas d'affichage des sorties / erreurs. Il peut être utilisé pour pousser silencieusement la sortie / les erreurs vers des fichiers texte. Il est principalement utilisé pour lancer des applications basées sur l'interface graphique.
javaws: ( Java web start ) pour télécharger et exécuter les applications Web distribuées. Là encore, aucune console n'est associée.
Tous font partie de JRE et utilisent la même JVM.
la source
javaw
devrait être dans mon PATH? (Ce n'est pas le cas)java.exe est associé à la console, alors que javaw.exe n'a aucune association de ce type. Ainsi, lorsque java.exe est exécuté, il ouvre automatiquement une fenêtre d'invite de commande où les flux de sortie et d'erreur sont affichés.
la source
Depuis http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.user.aix32.60%2Fuser%2Fjava.html :
Et javaws est pour les applications de démarrage Web Java, les applets ou quelque chose du genre, je suppose.
la source
J'ai vérifié que la redirection de sortie fonctionne avec
javaw
:javaw -cp ... mypath.MyClass ... arguments 1>log.txt 2>err.txt
Cela signifie que si l'application Java imprime quelque chose via System.out ou System.err, il est écrit dans ces fichiers, comme aussi avec l'utilisation de java (sans
w
). Surtout au démarragejava
, le JRE peut écrire des erreurs de démarrage (classe non trouvée) sur le tube de sortie d'erreur. À cet égard, il est essentiel de connaître les erreurs. Je suggère d'utiliser la redirection de la console dans tous les cas si ellejavaw
est invoquée.En face si vous utilisez
start java .... 1>log.txt 2>err.txt
Avec la console Windows
start
commande, la redirection de sortie de la console ne pas travailler avecjava
ni avecjavaw
.Explication pourquoi il en est ainsi: je pense que cela
javaw
ouvre un processus interne dans le système d'exploitation (adéquat en utilisant la classe java.lang.Process), et transfère une redirection de sortie connue vers ce processus. Si aucune redirection n'est donnée sur la ligne de commande, rien n'est redirigé et le processus interne démarré pourjavaw
n'a pas de sortie de console. Le comportement de java.lang.Process est similaire. La machine virtuelle peut également utiliser cette fonctionnalité internejavaw
.Si vous utilisez «démarrer», la console Windows crée un nouveau processus pour que Windows exécute la commande après le démarrage, mais ce mécanisme n'utilise malheureusement pas une redirection donnée pour le sous-processus démarré.
la source