如何在Java中处理closures请求

例如,当一个操作系统尝试重新启动时,我认为Java应用程序会收到某种closures请求。 我想对我的应用程序如何处理这些请求有一定的控制权。 但是,我不知道从哪里开始。 我有一些问题是:

所有closures请求是否都来自JVM? 容器,虚拟机和裸机操作系统的请求是否不同? 我特别感兴趣的是如何在docker集装箱内处理这个问题。 而且,当然,我可以使用哪些库来处理这些请求?

如果有人能够指出一个深度覆盖的资源,除了原始文档,例如书籍或在线课程(不一定是免费的)之外,这将是非常好的。 虽然,文档的链接也一定会受到赞赏。 谢谢!

更新:我知道我需要能够处理像电源线被抽出的事件。 但是,当我要求我的Windows机器closures时,有时会popup一个窗口,提示“正在等待这些应用程序closures”。 所以,我假设操作系统告诉应用程序在强制停止之前closures自己。 这是不正确的假设吗?

我想要完成的是应用程序在关机前logging信息或更新数据库。

我会看看addShutdownHook 。 再次感谢!

您可以通过Runtime类添加closures挂钩。 请注意,这些不能保证运行,比如有人拔掉电源线。

请参阅Oracle文档