我正在编写一个理论上可以在不同环境中使用的Java客户端:Java main(),servlet容器或依赖注入.
客户端实现内部连接线程池.
这种方法的问题在于,客户端的用户不知道实现内部线程池的事实将使他或她的应用程序在关闭时"挂起".我的用户需要知道向库发送shutdown()消息.
我想知道是否可以采取任何其他替代方法,一方面,允许我为我的连接启动一个线程池; 而且,另一方面,捕获一些事件,可能是一个JVM事件,表明JVM正在关闭,这将允许我调用我的shutdown()实现.
跟进上一个问题
如果您已经阅读了上一个问题,则另一个标题可能是:
我的守护程序应该多久检查一次它是否被中断?
我很难理解如何在 jline2 中处理CTRL+ C。我发现consoleReader.readline如果handleUserInterrupt设置为true就会抛出异常。但是我想知道在抛出这个异常之前,CTRL+C是如何被捕获和解释的(而不是退出程序)?
我有基于 Java 的 Windows 桌面应用程序。
我在我的应用程序中保留了 defaultuncaughtexceptionahandler 和 shutdown 挂钩。
我有一些用户称为退出点,例如用户单击退出、一些错误条件等。所有用户退出点都有正确的日志,后面将是登录关闭挂钩。
现在,对于我的一位用户来说,应用程序时不时地退出。这里用户没有调用任何用户退出点。打印关闭挂钩日志。defaultuncaughtException 处理程序没有异常。
我无法找到谁调用了 system.exit 以及 shutdown hook 。我能以某种方式找到调用 shutdown hook 或 system.exit () 的内容吗?打印关闭挂钩让我认为这是一次正确的 jvm 关闭而不是突然的关闭。
最好的问候, 索拉夫
我正在编写一个Rust程序,无论发生什么情况,该程序都需要在执行结束时保存一些数据。
在Java世界中,我可以使用shutdown hook来实现。有一个板条箱,恰当地称为shutdown_hooks,但似乎只能注册extern "C"功能(而且我不完全确定它将在上运行panic!(...))。
如何实现在正常退出以及出现紧急情况时触发的关闭挂钩?
如何在退出时以编程方式强制关闭程序.我已经添加了一个调用a的关闭钩子,System.exit(0)但它似乎在执行时遇到了问题.javaw.exe即使Jframe已关闭且执行了关闭挂钩,该进程仍在内存中运行.
此外,当我手动关闭运行该程序的批处理文件时,Windows会抛出强制关闭消息.图片:http://i.imgur.com/gy57OEV.png