1

jframeを作成する単純なswingプログラムを作成します。jframeを閉じると閉じますが、cmdにプロンプ​​トが表示されないため、ctrl + cを使用してプログラムを終了します。ただし、javawを使用してプログラムを実行する場合&jframeを閉じると、ctrl + cを使用せずにcmdでプロンプトが表示されますが、どのように機能しているか知りたいです。

4

5 に答える 5

3

java-Javaアプリケーションランチャー

javawコマンドはjavaと同じですが、コンソールウィンドウが関連付けられていない点がjavaw異なります。javawコマンドプロンプトウィンドウを表示したくない場合に使用します。javawランチャーが失敗すると、エラー情報を示すウィンドウが表示されます。

于 2012-09-12T17:30:56.910 に答える
0

JFrame Exampleに適切な Closing オプションを設定してみてください。

// Create a frame
JFrame frame = new JFrame();

// Get default close operation
int op = frame.getDefaultCloseOperation(); // HIDE_ON_CLOSE

// Set to exit on close
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

閉じるアクションで呼び出される独自の関数で WindowListener を上書きし、その後に System.exit(0) を続けることもできます。

于 2012-09-12T17:38:42.477 に答える
0

javaw.exe は Windows プラットフォーム専用です (w は Windows を表します)。java.exe を使用して Java アプリケーションを起動すると、それに関連付けられたコンソール ウィンドウが表示されます。コンソール アプリケーションを閉じると、コンソール アプリケーションも閉じます。javaw.exe は、コンソールなしでバックグラウンドで実行される JVM ランチャーです。

Java アプリケーションで jFrame を閉じても、アプリケーションは終了しません。アプリケーションのメイン ウィンドウ (jFrame) のウィンドウを閉じるイベントをキャプチャし、必要なクリーンアップ後にアプリケーションを終了する必要があります。この動作は、java.exe と javaw で同じです。 。EXE。java.exe を使用してアプリケーションを起動すると、コンソールにアプリケーションの状態が表示され、jframe を閉じてもアプリケーションが終了していないことがわかります。javaw.exe の場合、コンソールはありません。GUI アプリケーションのすべてのウィンドウを閉じると、アプリケーションが終了したと誤解される可能性があります。アプリケーションは javaw.exe プロセスとしてバックグラウンドで実行されます。これについてユーザー (開発者) に通知するために、javaw.exe の場合はプロンプトがあります。

于 2012-09-12T17:40:41.130 に答える
0

javaw でプログラムを開始しても Java コンソールは表示されませんが、java で開始すると Java コンソールが表示されます。

ただし、プログラムでアプリケーションの終了を適切に処理することをお勧めします。

// option 1
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// option 2
frame.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
frame.addWindowListener(new WindowAdapter() {
  public void windowClosing(WindowEvent e) {
    // do something here and then
    System.exit(0);
  }
});
于 2012-09-12T17:34:21.530 に答える
0

これは Windows 専用です。Windows には、コンソールと非コンソールの 2 種類のアプリケーションがあります。javawの非コンソール バージョンでjavaあるため、コンソールが表示されません。アプリケーションがグラフィカルなものである場合は、javaw.

于 2012-09-12T17:32:04.620 に答える