131得票1回答
Java中一个有用的关闭钩子示例是什么?

我正在努力确保我的Java应用程序采取合理的步骤来保证其健壮性,其中一部分涉及优雅地关闭。我正在阅读关机挂钩,但实际上不知道如何在实践中使用它们。 是否有一个实际的例子? 假设我有一个非常简单的应用程序,像下面这个示例一样,它将数字写入文件,每行10个数字,每批100个,并且如果程序被中断...

30得票5回答
PHP注册关机函数中的debug_backtrace()函数

在尝试回答这个问题时,我发现当从其中调用时debug_backtrace()无法追踪到注册到register_shutdown_function()的函数之外。 在PHP文档中的这个评论中提到了这一点,关于register_shutdown_function(): 你可能会想要从关闭...

27得票6回答
Eclipse中的关闭挂钩无法正常工作

我通过以下方式添加了一个关闭挂钩:Runtime.getRuntime().addShutdownHook(myShutdownHook); 通常情况下它正常工作,但当我在Eclipse中点击红色停止按钮时就不行了。有没有办法让关闭挂钩在Eclipse中被调用?

20得票1回答
运行"lein run"时,关闭挂钩没有触发。

我有以下代码:(ns test-hook.core) (defn -main [] (.addShutdownHook (Runtime/getRuntime) (Thread. #(println "shutdown"))) (println "start") (doseq [...

19得票3回答
Java应用程序在bat脚本中运行时的Windows关闭钩子

我有一个批处理脚本,运行一个Java应用程序。如果我按下ctrl+c,它会正常终止应用程序并调用所有的关闭钩子。然而,如果我只是关闭了bat脚本的cmd窗口,关闭钩子就永远不会被调用。 是否有一种方法来解决这个问题?也许有一种方式可以告诉bat脚本在其窗口关闭时如何终止调用的应用程序?

18得票2回答
Cygwin的CTRL-C(信号中断)无法正常工作 - JVM关闭钩子未启动

我正在开发一个Java应用程序,利用shutdown hook在程序终止/中断时进行清理,但是我注意到Cygwin的CTRL-C实现似乎不会触发shutdown hook。表面上看它已经中断了进程,将控制权交还给命令行,但是进程的shutdown hook根本没有被触发,所以清理工作不会发生。...

18得票5回答
仅在 Mac OS X 关机时运行脚本(而不是注销或重启)

有没有办法只在关机时运行脚本? 我的意思是,只有当计算机真的关闭到关闭状态时才运行此脚本。 当仅注销或重新启动时,不应运行此脚本。

17得票1回答
如何让IntelliJ调试器允许我的应用程序的关闭挂钩运行?

在IntelliJ中调试注册了关机钩子(shutdown hook)的应用程序时,无论我点击绿色“重新启动”圆形箭头按钮还是红色方形“停止”按钮,关机钩子都不会被调用。在这两种情况下,似乎正在调试的应用程序立即被强制终止。 (注意,这不是如何停止在IntelliJ中运行的处理程序以使其调用关...

16得票1回答
使用JavaFX Application.stop()方法覆盖Shutdownhook

我正在使用shutdownhook进行清理。但由于不能保证shutdownhooks线程总是执行,所以我是否应该将此代码推送到JavaFX应用程序线程(方法stop()),每次关闭应用程序时都会执行?代码运行成本不高。基本上只是在未关闭套接字时关闭套接字并在未杀死进程时杀死进程。 使用App...

16得票2回答
Java - 如何在JVM关闭钩子中启用日志记录器?

我有一个专门使用java.util.logging.Logger类的日志记录器类。 我想在另一个类的关闭挂钩中使用此记录器。 但是,在关闭时似乎没有记录。 根据我的阅读,可能已经为记录器本身激活了关闭挂钩,导致了这个问题。 我该如何使其正常工作?理想情况下,当进程终止时,我希望能在日志文件中...