package com.test.util.sys;
import java.io.File;
import java.io.RandomAccessFile;
import java.nio.channels.FileLock;
/**
* 单个实例程序检测
* @author luohui
* @create 2020/8/27
* @since 1.0.0
*/
public class SingleAppCheckUtil {
/**
* 检测是否有其他实例在运行
*/
public static void check() {
try {
File file = new File(System.getProperty("java.io.tmpdir") + "singleTest.single");
if(!file.exists()) {
file.createNewFile();
}
RandomAccessFile accessFile = new RandomAccessFile(file, "rw");
FileLock lock = accessFile.getChannel().tryLock();
if(lock == null) {
System.out.println("程序已运行,退出");
System.exit(0);
}
} catch (Exception e) {
Tools.saveLog(e);
System.exit(0);
}
}
}
package com.test.main;
import com.test.util.sys.SingleAppCheckUtil;
import javafx.application.Application;
import javafx.stage.Stage;
import java.net.URL;
import java.util.Timer;
/**
* JavaFx首页启动
* @author luohui
* @create 2020/4/13
* @since 1.0.0
*/
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void init() {
//检测是否有已运行程序
SingleAppCheckUtil.check();
}
@Override
public void start(Stage primaryStage) throws Exception {
//业务逻辑代码
//...
}
}
package com.test.main;
/**
* Java程序首页启动
* @author luohui
* @create 2020/4/13
* @since 1.0.0
*/
public class Main1 {
public static void main(String[] args) {
//检测是否有已运行程序
SingleAppCheckUtil.check();
//业务逻辑代码
//...
}
}
Java、JavaFx判断程序是否已运行
最新推荐文章于 2024-06-12 08:30:31 发布