当java应用程序强制关闭时调用方法

时间:2012-01-06 05:45:09

标签: java multithreading core

我希望在强行终止Java应用程序时调用方法。我需要释放我在我的应用程序中使用的资源。 请帮帮我。

由于

3 个答案:

答案 0 :(得分:8)

这取决于你的意思“强力”,但我希望你想添加一个Shutdown钩子。

关闭挂钩是小线程,每当Java尝试关闭时都会调用它们。您可以使用Runtime API添加一个,如下所示:

Runtime.getRuntime().addShutdownHook(Thread hook)

当然,如果你真的强制关机(通过关闭机器或在其上运行kill -9),操作系统将关闭Java而不给它机会清理任何东西。在这种情况下,你将无法做任何事情。

答案 1 :(得分:1)

这就是你想要的:

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

答案 2 :(得分:1)

您需要使用Shutdownhook:以下是示例:

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

        }      
   } );