This Java tips illustrates a method of creating a file lock on a file. Developer may note that the file lock may depend on the platform. On some platforms, the file lock is advisory, which means that unless an application checks for a file lock, it will not be prevented from accessing the file. On other platforms, the file lock is mandatory, which means that a file lock prevents any application from accessing the file.

 try {
        // Get a file channel for the file
        File file = new File("filename");
        FileChannel channel = 
          new RandomAccessFile(file, "rw").getChannel();
        // Use the file channel to create a lock on the file.
        // This method blocks until it can retrieve the lock.
        FileLock lock = channel.lock();
        // Try acquiring the lock without blocking. This method returns
        // null or throws an exception if the file is already locked.
        try {
            lock = channel.tryLock();
        } catch (OverlappingFileLockException e) {
            // File is already locked in this thread or virtual machine
        // Remember to release the lock
        // Close the file
    } catch (Exception e) {