JRE 更新后出现问题。
如果我启动了 Java 应用程序并启动系统重新启动 - Windows 无法自动停止此 Java 应用程序并且我收到以下消息: “此程序正在阻止 Windows 重新启动”。 如果我按下取消,那么我可以看到阻止重新启动的 Java 应用程序挂起。此问题会影响我的 Java 应用程序和 jconsole 等应用程序。
在 JRE 更新之前,在JRE 1.6.0_26上一切正常。我首先在JRE 1.6.0_36上遇到了这个问题。但它也发生在 1.6.0_39 上。
PS:我有 Windows Server 2008 R2 Interprise
有没有人有同样的问题或可以建议在这种情况下该怎么做?谢谢。
更新: 我已经实现了以下附加钩子:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
logger.log("SHUTDOWN - BEGIN");
((Window) view).setVisible(false);
logger.log("SHUTDOWN - Visible");
((Window) view).dispose();
logger.log("SHUTDOWN - Dispose");
System.exit(0);
}
});
之后,具有此类附加挂钩的应用程序在系统重新启动时正常关闭,但我发现如果我们只是关闭应用程序(通过按退出或“x”)Java VM 不会终止(我们可以在 taskmgr 中看到 javaw 进程)。
从日志文件中我可以看到该程序永远不会离开 dispose() 函数。如果我评论 dispose() 并只留下 System.exit(0) Java VM 仍然无法终止。
更新 2: 已为此问题创建票证。我们收到了Oracle 的以下回复:“问题重现并确认。”