実行可能なjarファイルがあります。開始したら、それを停止する唯一の方法は、タスク マネージャに移動して javaw プロセスを終了することです。初心者ユーザーが使用できる UI など、それを停止するよりクリーンな方法はありますか?
5 に答える
コードを制御するので、を使用して終了できるようにする何かをGUIに含める必要がありますSystem.exit
。したがって、Swingを使用している場合は、次のようなことができます。
JButton b = new JButton("Exit");
b.setActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
もう 1 つの便利な手法は、windowClosing をリッスンすることです。これは、ユーザーが Windows で X ボタン (および他のシステムでは同等のボタン) をクリックしたときに発生します。
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
私は通常、アプリケーションの Frame を拡張するクラスのコンストラクターに入れます。
JFrame を使用している場合は、次の行も追加する必要があります。
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
私はついに私の問題の解決策を見つけました。閉じることができるGUIがないので、コンソールもありません。最良の方法は、java.awtパッケージのSystemTrayAPIを使用することです。アイコンを右クリックして終了します。
アプリケーションにGUIがない場合(たとえば、サービスの場合)、ローカルネットワークアクセスを使用して、オペレーティングシステムがサービスの開始と停止に通常使用する標準のIPC(プロセス間通信)メカニズムをシミュレートできます。
ApacheのCommonsDaemonプロジェクトで見つけることができる非常に人気のある実装:http://commons.apache.org/daemon/
すべての非デーモン スレッドが終了すると、アプリケーションは終了します。これを行う方法は、1 つのデーモンを除くすべてのスレッドを作成し、最後のスレッドを停止するシグナルを待機するスレッドにすることです。