拦截Java虚拟机关闭调用?

6

在JVM关闭或实际关闭之前,有没有方法可以收到通知或System.exit调用?我希望能够这样做,以便我的应用程序能够进行清理退出。我知道这样的事情可能不太可能存在,但是还是有可能存在类似的东西。

2个回答

13
请查看Runtime.addShutdownHook API文档中说明:
Java虚拟机响应两种事件而关闭:
- 程序正常退出,即最后一个非守护线程退出或调用exit(等效于System.exit)方法。 - 在用户中断(如键入^C)或系统范围的事件(如用户注销或系统关闭)的响应下,虚拟机被终止。
使用Runtime.addShutdownHook,您可以在这些情况下运行代码。

3

你可能想要探索一下Runtime.getRuntime().addShutdownHook()方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接