Différence entre java.exe, javaw.exe et jvm.dll
Quelle est la différence dans l'exécution d'une application (par exemple, Eclipse) avec java.exe, javaw.exe et jvm.dll? Aussi, faut-il faire une différence en termes de performance?
- Lire Outils Java - docs.oracle.com/javase/1.5.0/docs/tooldocs
Vous devez vous connecter pour publier un commentaire.
jvm.dll
est le Windows de mise en œuvre de la JVM (ou mieux, le principal point d'entrée). C ou C++ applications peuvent utiliser cette DLL pour exécuter un embedded Java runtime, et qui permettrait l'application d'interface directement avec la JVM, par exemple, s'ils veulent utiliser Java pour son interface graphique.java.exe
est un wrapper autour de la DLL afin que les gens peuvent exécuter des classes Java sans avoir besoin d'un custom lanceur d'application. C'est une application Console Win32, afin que Windows va ouvrir une nouvelle fenêtre d'Invite de Commande si l'exe n'est pas exécuté à partir d'un fichier de commandes.javaw.exe
est un wrapper commejava.exe
, mais c'est un GUI Win32 application. Windows n'a pas pour ouvrir une fenêtre d'Invite de Commande, ce qui est exactement ce que vous voulez exécuter une application graphique qui ouvre sa propre windows.EDIT: ceux-ci ne devraient pas faire de différence dans la performance, sauf pour les frais généraux de processus de création et d'initialisation.
La chose la plus importante: il ne devrait pas d'importance; si vous vous faites du souci à propos de ce que vous pourriez réellement envie de garder Java en cours d'exécution au lieu de lancer des centaines de fois.
javaw -jar MyApp.jar
de Win7, la fenêtre cmd s'ouvre. Pourquoi? MyApp.jar ouvre JFrame instance.javaw.exe
commence même.javaw
à partir d'un fichier sans l'ouverture de la cmd?java.exe
- exécuter un programme Java (besoin de spécifier les classes et/ou des Pots) à partir de classe spécifiée contenantmain()
méthode.javaw.exe
- comme ci-dessus, mais ne pas créer une invite de commande Windows (adapté pour le Swing des programmes qui n'ont pas besoin d'une console).jvm.dll
- ce n'est pas un exécutable, mais une bibliothèque. Probablement utilisés par les deux programmes ci-dessus.jvm.dll
n'a rien à faire avec elle. Il y a pas de différence de performances (sauf inutile invite de commande créé avecjava.exe
si nécessaire). Utiliser celui qui convient le mieux à votre application (en ligne de commande vs GUI app)