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