【问题标题】:Java - catch PC is turning off event, or equivalentJava - 捕获 PC 正在关闭事件,或等效
【发布时间】:2011-08-31 08:15:14
【问题描述】:

我创建了一个编辑一些 XML 文件的软件。打开文件时会生成一个锁定文件,以避免多个用户同时编辑文件。

如果有人关闭电脑,我现在希望能够删除这样的锁。 (该应用程序可在 Linux 和 Windows 上运行。)

尝试关闭当前部分时是否有任何公共信号传递给虚拟机?

干杯,
Ste

【问题讨论】:

  • 关机时锁不是被删除了吗?
  • nono,te losk 是我在一个公共文件夹中创建的一个简单的基本文本文件。因为该工具是由不同机器上的许多人在同一资源上启动的。
  • 啊,好吧,那你是对的 ;)

标签: java events exit shutdown


【解决方案1】:

您可以尝试添加shutdown hook:

final Thread mainThread = Thread.currentThread();
Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() {
        // remove lock file...
    }
});

在这种情况下,run-方法中的代码将在 JVM 终止之前执行。 (除非JVM被kill -9 31337之类的东西杀死。)

相关问题:

【讨论】:

  • 小问题......因为我正在创建另一个线程,我想只能调用静态方法。我有一个方法 removeLocksOnExit();在我想参考的主要课程中。你知道在这种情况下我该怎么办吗?
  • 从其他线程调用非静态方法没有问题...不知道你从哪里得到的...
  • 我在另一个问题上发布了它......只是为了让它更清楚。这里是链接:
  • 事件未触发。我还需要添加什么吗?
【解决方案2】:
猜你喜欢
  • 2012-02-05
  • 1970-01-01
  • 2013-03-04
  • 2010-11-25
  • 2015-07-29
  • 1970-01-01
  • 2010-11-04
  • 2019-09-12
  • 1970-01-01
相关资源
最近更新 更多