【问题标题】:How to handle a closing application event in Java?如何在 Java 中处理关闭应用程序事件?
【发布时间】:2010-10-19 11:59:00
【问题描述】:

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

有什么解决办法吗?谢谢!

【问题讨论】:

    标签: java events listener


    【解决方案1】:

    您想使用关闭挂钩:

    Runtime.getRuntime().addShutdownHook(theHookThread);
    

    所以线程会在JVM关闭的时候运行,详见here

    【讨论】:

    【解决方案2】:

    如果关闭应用程序是指操作系统杀死服务器进程?

    在这种情况下,服务器无法知道它正在被杀死。它将删除现有的连接。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-15
      • 2021-11-18
      • 2015-11-03
      • 1970-01-01
      • 2012-02-09
      • 2012-11-25
      • 1970-01-01
      相关资源
      最近更新 更多