通过文件锁方式判断java程序是否正在运行。
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 = "msserver.bat";
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;
}
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 = "msserver.bat";
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;
}