0

私は Java のシャットダウン フック機能を使用していました。したがって、これはある種の「グローバル jvm ファイナライザー」であり、このスレッドで便利なものを作成できます (たとえば、組み込みの hsqldb サーバーのような Java リソースをシャットダウンします)。これは、System.exit()、または CTRL-C / kill -15 で機能します (もちろん、UNIX では kill -9 では機能しません)。

より実用的な使用法をアドバイスしてください。また、小さな例が理解をより明確にするのに役立つ場合もお願いします..!

4

1 に答える 1

1

シャットダウン フックがランタイム インスタンスに追加されると、スレッドのリストに追加され、JVM の正常な終了時に開始されます。

java.awt.TrayIcon例: シャットダウン フックを使用して、aがシステム トレイから確実に削除されるようにします。

Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() {
        try {
            if (SystemTray.isSupported()) {
                SystemTray.getSystemTray().remove(yourTrayIcon);
            }
        } catch (Exception e) {
            // failed to remove
            e.printStackTrace();
        }
    }
});

詳細については、公式ドキュメントを参照してください。

于 2012-08-11T06:54:39.390 に答える