Javaアプリが閉じたとき-シャットダウンフックが最後まで完全に実行されません。
Javaドキュメントではそれはそれを述べています
シャットダウンフックもすぐに作業を終了する必要があります...
(ドキュメントを参照)アプリをすばやく閉じます。
私はそれを試して解決したい(多分それを非デーモンスレッドに設定する)
そこで、まずは簡単なアプリで再構築してみました。
を使用してフックを追加します
Runtime.getRuntime().addShutdownHook(new Thread(){
@Override public void run() {
for (int i = 0; i < 1000000; i++) {
System.out.println(i);
}
}
});
そして私は投げます
System.exit(1);
この例では、シャットダウンプロセスは問題なく終了するまでカウントされます。(したがって、再構築はありません)
アプリで修正するにはどうすればよいですか?
どうすれば再構築できますか?