java、javaw、javaws の違い:
まず、これらはすべて Java 起動デバイスであり、コマンド ラインを使用してウィンドウに出力する場合、タスク マネージャーから確認できる java.exe プロセスがよく使用されます。通常、いくつかの小さな Java プログラムを実行すると、java.exe プロセスが実行されます。 javaw.exe も私たちにとって特別なものであり、タスク マネージャーを通じて javaw.exe プロセスの実行を確認することもできます。 javaws は通常、Web の起動時のプロセスです。
jvm.dll
jvm.dll は、Windows プラットフォーム環境上の Java 仮想マシンの実装であり、JRE の一部でもあり、jvm.dll を使用して jvm 上で直接実行できます。
java.exe
java.exe は、Java クラス ファイルを実行するために jvm.dll を使用する代わりにヘルプを提供するもので、Java クラスを実行するときに明らかにコンソールに関連付けられます。
javaw.exe
javaw.exe は java.exe に似ており、win32 GUI アプリケーションです。このアプリケーションは独自の GUI ウィンドウを提供し、コンソールを有効にしません。
したがって、コマンド コンソールを必要とせずに GUI プログラムを実行したいと考えています。
以下に例を示します。
次のようにコードをコピーします。
パッケージjavaw;
javax.swing.* をインポートします。
パブリック クラス HelloWorldSwing {
プライベート静的 void createAndShowGUI() {
JFrame jFrame = new JFrame("HelloWorld Swing");
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel helloLabel = new JLabel("Hello World!");
jFrame.getContentPane().add(helloLabel);
jFrame.pack();
jFrame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
上記は GUI プログラムです。これをコンソール上で実行するには、次のようにします。
次のようにコードをコピーします。
java -classpath .javaw.HelloWorldSwing
説明: -classpath は、クラスパス パスを現在のディレクトリに設定することを意味します。
実行後、タスク マネージャーを確認すると、java.exe プロセスが表示されます ------- これはコンソールを通じて実行されるためです。
写真は次のとおりです。
Eclipse で直接実行する場合: 実行後、タスク マネージャーをチェックして javaw.exe プロセスを確認します。これは、コンソール出力を通じて実行されないためです。
写真は次のとおりです。
javaw を使用してコマンドラインから実行する場合も、上の図のようになります。
注記:
javaw -classpath によって開始されるプロセスは javaw.exe です。
java -classpath によって開始されるプロセスは java.exe です。
java.exe と javaw.exe の 2 つの実行モードのもう 1 つの違いは、Java が GUI を実行した後、ウィンドウが閉じるまでそこでブロックされることです。
javaw が GUI を実行した後、次のコマンドを直接実行できます。
javaws.exe
javaws.exe プロセスは、Web 経由で設定されたプログラムの起動に適しています。つまり、Web アプリケーションで使用されます。
要約:
java.exe は、ウィンドウ コンソール コンソール プログラムを起動するために使用されます。
javaw.exeはGUIプログラムの起動に使用されます。
javaws.exe は Web プログラムに使用されます。
jvm.dll は、Windows プラットフォーム上の Java 仮想マシン仕様の実装です。