1

当用户在 Windows XP(可选,win7)上使用 Java 关闭计算机时,是否可以制作一些处理程序来执行某些操作?如何?

谢谢。

4

2 回答 2

4

可以向您的 Java 程序添加一个关闭挂钩,如果 JVM 因任何原因(除了System.exit() (包括 O/S 关闭)而关闭,则会调用该挂钩。那是你要的吗?

用途java.lang.Runtime.addShutdownHook(Thread)::

Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() {
        // shutdown code here
        }
    });
于 2010-03-15T20:36:23.753 回答
4

关闭挂钩应该可以完成这项工作。

来自API 文档

注册一个新的虚拟机关闭挂钩。Java 虚拟机关闭以响应两种事件:

  • 程序正常退出,当最后一个非守护线程退出或调用 exit(等效于 System.exit)方法时,或
  • 虚拟机响应用户中断(例如键入 ^C)或系统范围的事件(例如用户注销或系统关闭)而终止。
Runtime.getRuntime().addShutdownHook(new Thread() {
  public void run() {
    // do something
  }
});
于 2010-03-15T20:38:11.317 回答