Windows上未触发Java关闭钩子

Windows上未触发Java关闭钩子,java,shutdown-hook,Java,Shutdown Hook,当应用程序退出时,我将检测以下关闭钩子: Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { public void run() { // Do what you want when the application is stopping sendMsg("", "goOfflineExit", "12"); } }));

当应用程序退出时,我将检测以下关闭钩子:

    Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
        public void run() {

            // Do what you want when the application is stopping
            sendMsg("", "goOfflineExit", "12");
        }
    }));
这在Mac os上运行得很好,但由于某些原因,Windows上不会启动任何程序


你知道我遗漏了什么吗?

我可以想出两种可能的解释:

  • sendMsg(…)
    调用可能发生得太晚;e、 g.关闭或冲洗溪流后

  • sendMsg(…)
    调用可能正在引发异常。关闭挂钩中抛出的未捕获异常通常不会得到报告


如果你给我们看一下sendMsg的代码,我们可能会想出一个更明确的答案。

我可以想出两种可能的解释:

  • sendMsg(…)
    调用可能发生得太晚;e、 g.关闭或冲洗溪流后

  • sendMsg(…)
    调用可能正在引发异常。关闭挂钩中抛出的未捕获异常通常不会得到报告


如果您向我们展示了
sendMsg
的代码,我们可能会找到一个更明确的答案。

凭什么证明它不会被触发?也许它只是在运行时失败了。但更重要的是,如果您正在使用业务逻辑的关闭挂钩,那么这就是您的主要问题。它们是最后的手段,没有任何有用的保证。@Marko…没有Marko即使在我的情况下,情况也是一样的。有什么证据证明它没有被触发?也许它只是在运行时失败了。但更重要的是,如果您正在使用业务逻辑的关闭挂钩,那么这就是您的主要问题。它们是最后的手段,没有任何有用的保证。@Marko…没有Marko即使在我的情况下,情况也是一样的