Différence entre java.exe et javaw.exe

143

Récemment, j'ai noté que certaines applications fonctionnent sur javaw(pas dans java). Quelle est la différence entre eux et comment puis-je exécuter mon application Swing javaw?

asela38
la source
1
Question similaire et bonne réponse ici: stackoverflow.com/a/8194750/99717 . Notez que la question y pose également sur javaws.exe, donc pas techniquement un doublon ...
Hawkeye Parker

Réponses:

75

java.exe est la commande dans laquelle il attend la fin de l'application jusqu'à ce qu'il prenne la commande suivante. javaw.exe est la commande qui n'attendra pas la fin de l'application. vous pouvez continuer avec d'autres commandes.

GuruKulki
la source
2
javaw.exe ne montre pas non plus la sortie de la console youtube.com/watch?v=AQUAyJYwJ6Q 0:57 i.imgur.com/TGsm45f.png
barlop
1
Cette réponse est incorrecte. javaw.exe n'attendez que le finalise du programme. Il peut être utilisé en toute sécurité dans le cadre d'un script par exemple, et il attendra. Toutefois, lorsque vous démarrez manuellement des programmes non-console à partir de , le n'attendra pas et retournera immédiatement à l'invite de commande. Essayez-le avec vs.batcmd.execmd.exenotepad.exeping 8.8.8.8
Codeguard
115

java.exeest l'application console tandis que l'application javaw.exeWindows est (sans console). Vous ne pouvez pas avoir Consoleavec javaw.exe.

Chandra Patni
la source
4
J'ajouterai que "l'application console" ici ne signifie pas nécessairement que "cela a été exécuté à partir d'une console", seulement cela java.exeest autorisé à accéder à sa console. L'exécution d'une applet à partir d'un navigateur sous Windows, par exemple, utilise toujours java.exemême si mon panneau de configuration Java est défini sur Masquer la fenêtre de la console ou même Ne pas démarrer une fenêtre de console .
Ti Strga
La réponse suivante me semble meilleure et contient des références de documentation Java: stackoverflow.com/a/8194750/99717
Hawkeye Parker
40

La différence réside dans le sous - système ciblé par chaque exécutable.

  • java.exe cible le CONSOLEsous système.
  • javaw.execible le WINDOWSsous - système.
David Heffernan
la source
13

La commande javaw.exe est identique à java.exe, sauf qu'avec javaw.exe il n'y a pas de fenêtre de console associée

Chathuranga Chandrasekara
la source
6
Techniquement plus correct: avec javawil n'y a pas de console associée . La fenêtre n'est pas nécessairement créée (par exemple, lorsque vous exécutez à partir d'une fenêtre de console existante ou complètement en arrière-plan).
Joey