如果我有一个可以出于各种原因退出的Java程序,例如:
因为设置为“关闭时退出”的主窗口已关闭
因为代码中有一些System.exit(0)
因为根本没有窗口(并且没有设置为关闭时退出)但是仍有几个线程正在运行,然后在一个点上只有守护程序线程在运行,因此程序退出。
我安装了一个关机钩子(运行正常)。
有什么方法可以从我的关闭钩子中知道导致Java程序退出的原因吗?
(请注意,我并不是在问代码库是否有System.exit(...)
分布是不是一个好主意:这不是这个问题的主要内容)
基本上我想知道我是否强迫自己拦截每个可能的JVM出口点并在那里添加信息,或者是否已经有一种允许这样做的方法。
答案 0 :(得分:-1)
当JVM关闭时,您的关闭挂钩将在单独的线程中运行您的可运行逻辑。你不能再做这件事。