2012-01-06 96 views

回答

8

這取決於你所說的「強行」什麼了一點,但我希望你要添加一個關閉掛鉤。

關閉掛鉤是小型線程,每當Java嘗試關閉時都會調用它。您可以使用運行時API添加一個,像這樣:

Runtime.getRuntime().addShutdownHook(Thread hook) 

當然,如果你真的關閉(通過關閉機器電源或運行殺死-9就可以了,)操作系統會關閉Java而不給它一個清理任何東西的機會。在這種情況下,你將無法做任何事情。

+0

什麼System.exit()的?我想在這種情況下shutdownhook也不會被調用。 – Manish 2012-01-06 06:10:52

+0

是的,他們被System.exit()調用。只有當操作系統強制關閉而不是Java時,纔會出現問題。 – Erica 2012-01-06 06:12:39

+0

感謝您的澄清! – Manish 2012-01-06 06:17:49

1

這會是你想要什麼:

Runtime.getRuntime().addShutdownHook(new Thread() { 
    public void run() { 
     // release your resource 
    } 
}); 
1

您需要使用Shutdownhook:這裏是例子:

Runtime.getRuntime().addShutdownHook ( 
new Thread() { 
      @Override  
     public void run() {  
      System.out.println ("Shutdown hook"); 

     }  
    });