2012-02-22 30 views
0

Javaで並行/分散システムのプロトタイプを作成しています。プロセスが終了すると(コマンドラインのctrl + cやEclipseの赤いボタンなど)、消える前に他のプロセス(最終的な方法)にメッセージをブロードキャストしたいと思います。 finalize()でそれをやろうとしましたが、無駄です。スレッド、ソケット、メインループを持つ純粋なJava。ありがとう。Javaはプログラム終了時に最終アクションを実行しますか?

+0

http://stackoverflow.com/questions/914666/how-to-capture-system-exit-eventを参照してください。 – bithead61

答えて

7

Runtime.addShutdownHookを試しましたか?

注時々JVMがシャットダウン・フックを実行せずに中止する可能性があることを示す資料の一部 - これは優雅なシャットダウンの一部として使用されなければならないが、常に実行することを想定すべきではありません。 (あなたのネットワークが突然切断された場合を想像してください。例えば、には別れメッセージをブロードキャストできません)

+0

ありがとうございました! – mstath

1

Runtime.addShutdownHook()を使用できます。

0

Runtime.addShutdownHook()です。これは、JVMが正常にシャットダウンした場合にのみ実行されます。

関連する問題