Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当java应用程序强制关闭时调用方法_Java_Multithreading_Core - Fatal编程技术网

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

当java应用程序强制关闭时调用方法,java,multithreading,core,Java,Multithreading,Core,我想在强制终止Java应用程序时调用一个方法。我需要释放我在应用程序中使用的资源。 请帮帮我 谢谢这正是您想要的: Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { // release your resource } }); 这有点取决于你所说的“强制”是什么意思,但我希望你想添加一个关机挂钩 shutdownhook是小线程,每当Java试图关闭时都会调用它。您可

我想在强制终止Java应用程序时调用一个方法。我需要释放我在应用程序中使用的资源。 请帮帮我


谢谢

这正是您想要的:

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

这有点取决于你所说的“强制”是什么意思,但我希望你想添加一个关机挂钩

shutdownhook是小线程,每当Java试图关闭时都会调用它。您可以使用运行时API添加一个,如下所示:

Runtime.getRuntime().addShutdownHook(Thread hook)

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

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

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

        }      
   } ); 

那System.exit()呢?我猜在这种情况下也不会调用shutdownhook。是的,它们是用System.exit()调用的。只有当操作系统强制关闭而不是Java时,您才有问题。感谢您的澄清!