「Java」シャットダウンフックを登録する
以下の Runtime#addShutdownHook を使ってシャットダウンフックを登録すると、System#exit、あるいは、Ctrl + C 押下時などの JVM の終了時に実行できるみたいです。ちょっとやってみたので、その時のメモ。
・Runtime (Java Platform SE 7 )
http://docs.oracle.com/javase/jp/7/api/java/lang/Runtime.html#addShutdownHook(java.lang.Thread)
■ Test.java
public class Test { public static void main(String[] args) { Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { System.out.println("shutdownHook !!"); } }); // System#exit で JVM の終了 System.exit(0); // Ctrl + C を試したい場合は処理止めるなりする //try { // Thread.sleep(60000); //} catch (InterruptedException e) { // e.printStackTrace(); //} } }
実行するとちゃんと "shutdownHook !!" と表示されます。
以上です。