1

多くの同じプラグインを利用できる Eclipse RCP GUI アプリケーションのコマンド ライン バージョンがあります (これは統合テストに便利です)。それが行うことの 1 つは、サーバーに接続し、何かを要求し、対話型ループを開始することです。終了するには、GUI アプリのユーザーはループを停止してアプリケーションを閉じることができます。

私のコマンド ライン アプリでは、アプリケーションを「閉じる」ための最も明白な方法は CTRL-C です! ただし、これにより、サーバーに「セッションクラッド」が残りますが、終了シグナルをキャプチャできればクリーンアップできます。クラッドはそのうちタイムアウトか何かになりますが、それもきれいに整理できればいいのにと思います。

では、Eclipse RCP アプリケーションから kill シグナルをキャプチャするためのオプションは何ですか? それが役立つ場合、これはLinux固有です。しかし、SWT プラグインはロードしません。コマンド ラインで ctrl-c を押しても、「メイン ループ」 Plugin.stop() が呼び出されません。Python の KeyboardInterrupt のようなものがエースです!

4

2 に答える 2

3

別のアプローチを見つけました-終了時に実行されるシャットダウンフックを追加します...

    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
            System.out.println("The end.");
        }
    });
于 2009-03-13T09:09:22.140 に答える
1

bashのtrapビルトインを見てください。CTRL-C のシグナルは SIGINT ですが、SIGTERM と SIGHUP もトラップしたい場合があります。

于 2009-03-13T09:01:36.823 に答える