问题标签 [shutdown-hook]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何确保在退出 Java 应用程序之前运行一段代码
我正在使用许可的 API,它具有从具有有限数量许可证的许可证服务器获取/释放许可证对象的方法。在我的应用程序开始时,我调用该方法来获取许可证,但我想确保即使我的程序突然终止/崩溃(异常、SIGTERM 等)也能释放它。关闭挂钩是解决此问题的最佳方法吗?
java - 在 java 中的关闭挂钩内引发异常时会发生什么
如果在 java 中执行关闭挂钩期间抛出未捕获的异常,jvm 是否会立即退出而不运行其余已注册的关闭挂钩(如果有)?从javadocs:
与在任何其他线程中一样,通过调用线程的 ThreadGroup 对象的 uncaughtException 方法,在关闭挂钩中处理未捕获的异常。此方法的默认实现将异常的堆栈跟踪打印到 System.err 并终止线程;它不会导致虚拟机退出或停止。
似乎其他关闭挂钩应该运行......
作为一个后续问题,拥有一段可能在关闭挂钩中引发异常的代码可能不是一个好主意?如果无法避免,尝试在关闭挂钩内捕获异常是一种好习惯吗?
java - Java - 如何让记录器在关闭挂钩中工作?
我有一个使用该类的专门记录器java.util.logging.Logger
类。我希望能够在另一个类的关闭挂钩中使用这个记录器。但是,它似乎没有在关机时登录。根据我的阅读,可能已经为记录器本身激活了一个关闭挂钩,这导致了问题。
我怎样才能让它工作?理想情况下,我希望在日志文件中看到我实际上在进程终止时执行了关闭挂钩。
java - Java 强制关闭程序
如何在退出时以编程方式强制关闭程序。我添加了调用 a 的关闭钩子,System.exit(0)
但执行它似乎有问题。javaw.exe
即使 Jframe 已关闭并执行了关闭挂钩,该进程仍会继续在内存中运行。
此外,当我手动关闭运行程序的批处理文件时,Windows 会抛出强制关闭消息。图片:http: //i.imgur.com/gy57OEV.png
java - 为什么这个shutdownhook 不起作用?
这是我的主要方法,它包含一个shutdownhook:
问题是JOptionPane
根本没有出现。相反,框架关闭,但应用程序本身仍在运行。PS。我无法使用该WindowClosing
事件,因为它不会在Mac OS XCmd上的+Q命令上触发。
java - 关闭挂钩未打印到通过 Maven 执行的 JUnit 测试中的控制台
我有一个简单的 JUnit 测试,它由 Maven 通过 @Test 注释标记的方法运行。我想将关闭挂钩放入该测试中,因为如果用户按下 CTRL-C,我想打印一些测试结果。我对以下几行进行了编码:
要运行它,我使用 Maven:
mvn clean test -DtestClassName=com.MyTest
问题是没有打印任何内容。看起来 System.out.println 还没有工作。我能做些什么来修复它?
java - Shutdownhook in Java
I want to write the system shutdown time to a txt file. I am using the shutdownhook thread.
I have written the file writing mechanism in the run method of the thread. But it is not working.. This is my code..
java - 请求输入用户时替代 nohup
我有一个以 nohup 命令启动的 java 应用程序。现在停止命令只是该应用程序的 kill -15。这个应用程序是一个文件解析和写入数据库应用程序,它有一个关闭钩子,它拦截 kill 命令,然后做一些释放资源和清理数据库的东西......
现在,这个清理过程需要一些输入用户(Y 或 N)来释放每个文件(基本上,对于仍在解析的每个文件,应用程序要求等待其完成或中断进程并在 db 上进行一些清理)。
nohup 命令忽略标准输入,因此忽略 java 输入阅读器。我该如何解决?
谢谢!
java - 在图书馆管理 ExecutorService 的最佳实践是什么?
在我的一个库中,我使用具有 5 个线程的固定线程池执行器;我的线程不是重量级的,我.get()
有超时,但至于ExecutorService
,我创建它,然后,这是“生死攸关”。
.shutdown{,Now}()
当你完成它时,你应该这样做;但这是一个库,我无法提前知道它将如何使用:使用简单的main()
, 在将由 servlet 容器管理的 webapp 中,其他。
这感觉不对。我怎样才能做得更好?我应该只使用除 a 以外的东西ExecutorService
吗?
编辑链接到唯一的用户:这里;守护线程可能是一个解决方案,现在我不知道它们是否有我应该注意的缺点......
java - 无头 JAR 可以向主线程添加关闭挂钩吗?
我想创建一个可在我的许多项目中共享的可重用 JAR。在这个 JAR 中,当调用某个方法时,需要创建多个线程。
我希望能够添加一个关闭Runtime.addShutdownHook(...)
钩子main(String[])
(
所以我问:任何 JAR 中的任何方法都可以访问“主”线程并为其添加关闭挂钩吗?如果是这样,怎么做?