如何在Java中处理结束应用程序事件?

时间:2009-04-15 02:04:51

标签: java events listener

拥有一个控制台应用程序,一个服务器接受来自客户端的多个连接,是否可以在关闭应用程序上拥有一个监听器或事件?在这种情况下,我希望告诉所有连接的客户端在应用程序真正关闭之前轻轻断开连接。

任何解决方案?谢谢!

2 个答案:

答案 0 :(得分:7)

您想使用关闭钩子:

Runtime.getRuntime().addShutdownHook(theHookThread);

因此线程将在JVM关闭时运行,有关详细信息,请参阅here

答案 1 :(得分:0)

如果关闭应用程序,则意味着操作系统会终止服务器进程?

在那种情况下,服务器无法知道它被杀死了。它将丢弃现有的连接。

如果通过关闭应用程序,您为sys管理员提供了一种手动关闭服务器的方法(可能是在服务器控制台上键入“exit”)。然后,关闭事件将是一个自定义事件,您必须对侦听器进行编码并通知服务器正在关闭的每个人。在这种情况下它是可行的。

尝试添加有关服务器构建方式或工作原理的更多详细信息。