/** * 通過文件鎖來判斷程序是否正在運行 * @return 如果正在運行返回true,否則返回false */ private static boolean isRunning() { boolean rv=false; try { // String os_name=System.getProperty("os.name"); //指定文件鎖路徑 String path=null; if(os_name.indexOf("Windows")>-1) { //如果是Windows操作系統 path=System.getProperty("user.home")+System.getProperty("file.separator"); } else { path="/usr/temp/"; } File dir=new File(path); if(!dir.exists()) { dir.mkdirs(); } //程序名稱 String applicationName="sms"; RandomAccessFile fis = new RandomAccessFile(path+applicationName+".lock","rw"); FileChannel lockfc = fis.getChannel(); FileLock flock = lockfc.tryLock(); if(flock == null) { System.out.println("程序正在運行."); rv=true; } } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return rv; }