2010-01-04 7 views
132

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

+1

Une question similaire et une bonne réponse ici: http://stackoverflow.com/a/8194750/99717. Notez que la question là demande aussi à propos de javaws.exe, donc techniquement pas un doublon ... –

Répondre

67

java.exe est la commande où il attend l'application pour compléter jusqu'à ce qu'il prend la prochaine commander. javaw.exe est la commande qui n'attendra pas la fin de l'application. vous pouvez aller de l'avant avec d'autres commandes.

+0

javaw.exe ne s'affiche pas non plus afficher la console https://www.youtube.com/watch?v=AQUAyJYwJ6Q 0:57 http://i.imgur.com/TGsm45f.png – barlop

102

java.exe est l'application de la console tandis que javaw.exe est l'application Windows (sans console). Vous ne pouvez pas avoir Console avec javaw.exe.

+4

J'ajouterai que "l'application console" ne signifie pas forcément que "ça a été lancé depuis une console", seulement que " java.exe' est autorisé à accéder à sa console. L'exécution d'une applet à partir d'un navigateur sous Windows, par exemple, utilise toujours java.exe même si mon Panneau de configuration Java est défini sur Masquer la fenêtre de la console ou même ne démarre pas une fenêtre de console. –

+0

La réponse suivante me semble meilleure et possède des références de documentation Java: http://stackoverflow.com/a/8194750/99717 –

12

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

+6

Techniquement plus correct: Avec 'javaw' il 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

37

La différence est dans le subsystem que chaque exécutable cible.

  • java.exe cible le sous-système CONSOLE.
  • javaw.exe cible le sous-système WINDOWS.