2011-08-31 39 views
1

我创建了一个编辑某些XML文件的软件。当打开一个文件时,会生成一个锁定文件,以避免多个用户同时编辑该文件。Java - catch PC关闭事件或等效

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

尝试关闭当前段时是否有任何传递给虚拟机的常见信号?

干杯,
科技教育

+0

不是关闭时删除的锁吗? – Tobias

+0

nono,te losk是一个简单的基本文本文件,我在一个公共文件夹中创建。因为这个工具是由不同机器上的许多人提供资源的webstarted。 – Stefano

+0

啊,好吧,那么你是对的;) – Tobias

回答

2

你可以尝试添加shutdown hook

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

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

相关问题:

+0

小问题...因为我creatig另一个thred我猜只能静态方法可以被称为。我有一个方法removeLocksOnExit();在我想参考的主要课堂上。你知道我在这种情况下能做什么? – Stefano

+0

没有问题从其他线程调用非静态方法...不知道你从哪里得到... – aioobe

+0

我张贴在另一个问题..只是为了更清楚。这里的链接: – Stefano