关闭 Windows 控制台时如何优雅地关闭 Java 应用程序?
Posted
技术标签:
【中文标题】关闭 Windows 控制台时如何优雅地关闭 Java 应用程序?【英文标题】:How to gracefully shutdown a Java application when of closing the Windows console? 【发布时间】:2017-03-08 08:48:31 【问题描述】:这个问题已经asked before,但仍然没有答案。
场景是从 Windows 控制台窗口启动 Java 命令行程序。当控制台窗口的“X”关闭按钮被按下时,程序仍然被执行。
效果是程序在没有执行关闭挂钩的情况下终止(它们就位并在 Ctrl-C 上正确反应)。
This answer 到 that question 表明可以从 C 中完成。
是否有一个(可能是特定于平台的)库允许对关闭事件做出反应并使用 Java 中的 SetConsoleCtrlHandler?
【问题讨论】:
为什么不应该将其作为链接问题的副本关闭? @Jiri Tousek:“您不能将问题标记为未回答问题的重复。” (***.com/help/duplicates) 链接的问题已经有 2 年以上的三个答案,但这不是重点。这个问题与需要新问题的链接问题有何不同? 也许这个答案就是你要找的***.com/questions/9277630/… 【参考方案1】:也许可以使用JNA 在windows消息上设置一个钩子:WM_CLOSE,并检查它是否由您的应用程序窗口句柄触发。
【讨论】:
以上是关于关闭 Windows 控制台时如何优雅地关闭 Java 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
优雅地终止基于 Boost Asio 的 Windows 控制台应用程序