如何实现单个实例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