我有一个锁定文件的程序,其中lock
是文件:
FileChannel channel = new RandomAccessFile(lock,"rw").getChannel();
FileLock lock = channel.lock();
主要目的是,使用辅助程序,检查程序是否被杀死。辅助程序的代码如下所示:
boolean isNotLocked = false;
while (true){
while (isNotLocked){
lock.renameTo(lock);
}
//run the program again
}
它第一次运行,程序再次运行,但在程序再次运行后,辅助程序抛出OverlappingFileLockException
并终止。主程序是创建锁,而不是辅助锁。