确保单个实例正在运行

时间:2017-11-17 09:11:41

标签: java lockfile

我有一些代码可以确保我的应用程序的单个实例正在运行,使用锁定文件:

public static boolean ensureSingleInstance(String appName) {
    try {
        String path = Paths.get(System.getProperty("java.io.tmpdir"),  appName + ".lock").toString();
        File file = new File(path);
        RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");
        if (randomAccessFile.getChannel().tryLock() != null) {
            file.deleteOnExit();
            return true;
        }
    } catch (IOException ignore) {
    }
    return false;
}

99.9%的时间可以使用。然后昨天,在生产中,该应用程序的第二个实例成功启动...

这段代码怎么会失败?

0 个答案:

没有答案