如何检测我的独立 Java 应用程序何时关闭?

How can I detect when my standalone Java application was shut down?

我有一个独立的 Java 应用程序充当连接到 ActiveMQ 队列的消费者。在我的应用程序的 main() 方法中,我创建了一个消费者实例作为线程并启动它。

看到我正在为此使用 JMS,我想向我的应用程序添加一个关闭挂钩,以便当我的应用程序停止工作(终止或终止)时,我的应用程序将 运行 一些方法,其中我所有的资源都将被关闭。

我已经尝试过 Runtime.addShutdownHook() 但它似乎并没有在我关闭我的应用程序时被调用。

我希望它表现得好像调用了 ServletContextListenercontextDestroyed() 方法。

Runtime.addShutdownHook() 是正确的 API 使用,但不幸的是 Eclipse 中的 "Stop" 按钮终止了进程,不允许任何挂钩 运行。有关详细信息,请参阅 Shutdown hook doesn't work in Eclipse