在Java 1.5中,java.nio.channels.FileLock沒有檢查查看已經被鎖定的文件。 Referenced HereJava 5和Java 6之間的FileLock變化
的片段狀態:
的java.nio.channels.FileLock中的類檢查已經通過 其他FileChannel實例
鎖定的文件Java SE 6中拋出 OverlappingFileLockException如果 應用程序嘗試鎖定區域 ,該區域與通過 另一個FileChannel實例鎖定的區域重疊。以前的 版本未檢查由其他FileChannel 實例獲取的文件鎖 。默認情況下,java.nio.channels.FileChannel.lock 方法檢查請求的鎖 是否與此虛擬機所持有的區域重疊。
因此,在Java 6之前,如果有多個程序寫入同一個文件(每個程序試圖獲得排他鎖),排他性文件鎖定不起作用。人們如何在Java 5之前和之前解決這個問題?