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上不会启动任何程序
你知道我遗漏了什么吗?我可以想出两种可能的解释:
调用可能发生得太晚;e、 g.关闭或冲洗溪流后sendMsg(…)
调用可能正在引发异常。关闭挂钩中抛出的未捕获异常通常不会得到报告sendMsg(…)
如果你给我们看一下sendMsg的代码,我们可能会想出一个更明确的答案。我可以想出两种可能的解释:
调用可能发生得太晚;e、 g.关闭或冲洗溪流后sendMsg(…)
调用可能正在引发异常。关闭挂钩中抛出的未捕获异常通常不会得到报告sendMsg(…)
如果您向我们展示了
sendMsg
的代码,我们可能会找到一个更明确的答案。凭什么证明它不会被触发?也许它只是在运行时失败了。但更重要的是,如果您正在使用业务逻辑的关闭挂钩,那么这就是您的主要问题。它们是最后的手段,没有任何有用的保证。@Marko…没有Marko即使在我的情况下,情况也是一样的。有什么证据证明它没有被触发?也许它只是在运行时失败了。但更重要的是,如果您正在使用业务逻辑的关闭挂钩,那么这就是您的主要问题。它们是最后的手段,没有任何有用的保证。@Marko…没有Marko即使在我的情况下,情况也是一样的