2

次の呼び出しを介していくつかの外部プロセスを起動します

Runtime.getRuntime.exec("java myApp");

java.concurent.Futureを使用して、アプリケーションの正しい起動と実行を監視します。アプリが誤って起動され、停止されたかどうかがわかります。やめられます。

しかし、メインアプリケーション(他のアプリケーションを起動するアプリケーション)を強制終了すると、子アプリケーションのいくつかのプロセスが実行され続け、それらを制御できなくなります。

マザーアプリケーションが停止/強制終了/エラーになったときに、すべての子プロセスも強制終了されるようにする方法を探しています。

私がすでにしたこと:

メインアプリケーションはtomcatで実行されるので、コンテキストの破棄をリッスンし、すべてのサブプロセスを強制終了します。しかし、それだけでは十分ではありません。Tomcatを停止または強制終了すると、機能しなくなります。

4

1 に答える 1

1

あなたができることは-アプリケーションにtomcatへの接続を(localhost:port上で)一定の間隔で開かせ、それがない場合は- System.exit(0)。例えば:

try {
    new URL("http://localhost:8080").openConnection().getContent();
} catch (IOException ex) {
    // do app finalizations
    System.exit(0);
}
于 2010-02-22T09:57:14.450 に答える