Creating a Shared File Lock on a File public static void main(String[] args) { try { // Obtain a file channel File file = new File("filename"); FileChannel channel = new RandomAccessFile(file, "rw").getChannel(); // Create a shared lock on the file. // This method blocks until it can retrieve the lock. FileLock lock = channel.lock(0, Long.MAX_VALUE, true); // Try acquiring a shared lock without blocking. This method returns // null or throws an exception if the file is already exclusively locked. try { lock = channel.tryLock(0, Long.MAX_VALUE, true); } catch (OverlappingFileLockException e) { // File is already locked in this thread or virtual machine } // Determine the type of the lock boolean isShared = lock.isShared(); // Release the lock lock.release(); // Close the file channel.close(); } catch (Exception e) { } }