La différence entre java, javaw et javaws :
Tout d'abord, ce sont tous des périphériques de démarrage Java. Java.exe est souvent utilisé lors de l'utilisation de la ligne de commande pour afficher dans la fenêtre, il y aura un processus java.exe, qui peut être vu via le gestionnaire de tâches. Habituellement, lorsque nous exécutons de petits programmes Java, le processus java.exe sera en cours d'exécution. javaw.exe est également spécial pour nous. Nous pouvons également voir le fonctionnement du processus javaw.exe via le gestionnaire de tâches. javaws est généralement le processus au démarrage du Web.
jvm.dll
jvm.dll est l'implémentation d'une machine virtuelle Java sur l'environnement de plate-forme Windows et fait également partie du JRE Un programme C peut s'exécuter directement sur la jvm à l'aide de jvm.dll.
java.exe
java.exe est une application console win32. Elle fournit une aide au lieu d'utiliser jvm.dll pour exécuter les fichiers de classes Java, elle est évidemment associée à une console lors de l'exécution des classes Java.
javaw.exe
javaw.exe est similaire à java.exe et est une application GUI win32. L'application fournit sa propre fenêtre GUI et n'active pas la console.
Par conséquent, nous souhaitons exécuter un programme GUI sans nécessiter de console de commande.
Voici un exemple :
Copiez le code comme suit :
paquet javaw ;
importer javax.swing.* ;
classe publique HelloWorldSwing {
vide statique privé createAndShowGUI() {
JFrame jFrame = new JFrame("HelloWorld Swing");
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel helloLabel = new JLabel("Bonjour tout le monde !");
jFrame.getContentPane().add(helloLabel);
jFrame.pack();
jFrame.setVisible(true);
}
public static void main (String[] arguments) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
Ce qui précède est un programme GUI. Pour l'exécuter comme suit, il faut l'exécuter sur la console :
Copiez le code comme suit :
java -classpath .javaw.HelloWorldSwing
Explication : -classpath signifie définir le chemin de classe vers le répertoire actuel.
Après l'exécution, vérifiez le gestionnaire de tâches et le processus java.exe apparaît ------ car il est exécuté via la console.
L'image est la suivante :
Si vous l'exécutez directement dans Eclipse : après l'exécution, vérifiez le gestionnaire de tâches pour voir le processus javaw.exe - car il n'est pas exécuté via la sortie de la console.
L'image est la suivante :
Si vous utilisez javaw pour l'exécuter via la ligne de commande, c'est également comme indiqué dans la figure ci-dessus :
Note:
Le processus démarré par javaw -classpath . javaw.HelloWorldSwing est javaw.exe.
Le processus démarré par java -classpath javaw.HelloWorldSwing est java.exe.
Une autre différence entre les deux modes d'exécution de java.exe et javaw.exe est qu'une fois que Java a exécuté l'interface graphique, il s'y bloque jusqu'à ce que la fenêtre soit fermée.
Une fois que Javaw a exécuté l'interface graphique, vous pouvez exécuter directement la commande suivante.
javaws.exe
Le processus javaws.exe convient au démarrage de programmes configurés via le Web. En bref, il est utilisé dans les applications Web.
Résumer:
java.exe est utilisé pour démarrer le programme de console de la console Windows
javaw.exe est utilisé pour démarrer les programmes GUI
javaws.exe est utilisé pour les programmes Web.
jvm.dll est une implémentation de la spécification de machine virtuelle Java sur la plateforme Windows