【发布时间】:2013-10-28 15:50:57
【问题描述】:
我已将以下代码添加到我的程序中:
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override
public void run() {
System.out.println("exit");
}
}){});
但是,我没有看到该消息。附加信息:我在 Java 7 上的 Netbeans IDE 内部运行程序。
编辑:我忘了补充说有一个全局线程可以让程序保持活动状态。我按 Netbeans 右下角的 [x] 将其关闭。
【问题讨论】:
-
尝试向 Java 进程 (
kill -1 <pid>) 发送SIGHUP,而不是单击 UI 按钮。 en.wikipedia.org/wiki/Unix_signal#POSIX_signals -
当我将它粘贴到
main方法中时,您的示例对我来说很好。 -
请注意,
{}是不必要的。它实际上创建了Thread的匿名内部子类。 -
Runnable 不是必需的。相反,您可以覆盖 Thread 的 run 方法,它在功能上是相同的。