gpt4 book ai didi

java - 从 ShutdownHook 中查找程序退出的原因

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:00 25 4
gpt4 key购买 nike

如果我有一个 Java 程序可以由于各种原因退出,例如:

  • 因为设置为“关闭时退出”的主窗口已关闭

  • 因为代码中有一些System.exit(0)

  • 因为根本没有更多的窗口(并且没有设置为在关闭时退出)但是仍然有几个线程在运行然后在某一时刻只有守护线程在运行因此程序退出。

而且我已经安装了一个关闭 Hook (运行良好)。

有什么方法可以从我的关闭 Hook 中知道是什么导致了 Java 程序退出?

(请注意,我不是在问将 System.exit(...) 分布在代码库中是否是个好主意:这不是这个问题所在关于)

基本上我想知道我是否被迫拦截每个可能的 JVM 导出点并在那里添加信息,或者是否已经有允许这样做的方法。

最佳答案

您可以添加一个将在系统退出时调用的 SecurityManager(以确定是否允许)。您可以将其保存在稍后调用的位置或在 SecurityManager 中进行处理。

关于java - 从 ShutdownHook 中查找程序退出的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8230210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com