使java程序只有一个实例保留在内存中

使java程序只有一个实例保留在内存中

使java程序只运行一次使java程序只运行一次,既只允许一个实例保留在内存中
主要是利用fileLock类来实现对文件加锁,实现上述目的(多说无益,代码如下):
package com.neonway.oneinstance;
import java.io.*;
import java.nio.channels.*;
public class OneInstance {
    /**
     * @param args
     */
    public static void main(String[] args) {
     try {
            System.out.println("progran start …");
            String filename = new String("test.txt");
            File testFile = new File(filename);
            RandomAccessFile raf;
            FileChannel fc;
            FileLock fl;
            testFile.createNewFile();
            if (testFile.canWrite()) {
                raf = new RandomAccessFile(testFile, "rw");
                fc = raf.getChannel();
                fl = fc.tryLock();
                if ((fl == null) || (fl.isValid() == false)) {
                    System.out.println("this is useing by another program!");
                } else {
                 System.out.println("program running…");
                    Thread.sleep(30 * 1000);
                    fl.release();
                }
                raf.close();
            }
           System.out.println("program end …");
  } catch (Exception e) {
   e.printStackTrace();
  }
    }
}
 

Leave a Reply

Your email address will not be published. Required fields are marked *