如何实现单个实例Java应用程序?

有时我会看到许多应用程序,例如msn,Windows Media Player等都是单实例应用程序(当用户在应用程序运行时执行时,将不会创建新的应用程序实例)。

C#中,我Mutex为此使用类,但是我不知道如何在Java中执行此操作。

回答:

我在主要方法中使用以下方法。这是我所见过的最简单。

private static boolean lockInstance(final String lockFile) {

try {

final File file = new File(lockFile);

final RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");

final FileLock fileLock = randomAccessFile.getChannel().tryLock();

if (fileLock != null) {

Runtime.getRuntime().addShutdownHook(new Thread() {

public void run() {

try {

fileLock.release();

randomAccessFile.close();

file.delete();

} catch (Exception e) {

log.error("Unable to remove lock file: " + lockFile, e);

}

}

});

return true;

}

} catch (Exception e) {

log.error("Unable to create and/or lock file: " + lockFile, e);

}

return false;

}

以上是 如何实现单个实例Java应用程序? 的全部内容, 来源链接: utcz.com/qa/416227.html

回到顶部