diff --git a/pom.xml b/pom.xml index 3db64c6..8453329 100644 --- a/pom.xml +++ b/pom.xml @@ -55,14 +55,10 @@ no-natives - org.slf4j - slf4j-api - 2.0.13 - - - org.slf4j - slf4j-simple - 2.0.13 + ch.qos.logback + logback-classic + 1.2.13 + io.github.eduramiba @@ -75,6 +71,12 @@ webcam-capture 0.3.12 + + + io.github.sanyarnd + app-locker + 1.2.0 + diff --git a/src/main/java/org/aohe/Main.java b/src/main/java/org/aohe/Main.java index c73ae3f..b13f548 100644 --- a/src/main/java/org/aohe/Main.java +++ b/src/main/java/org/aohe/Main.java @@ -1,6 +1,7 @@ package org.aohe; import com.formdev.flatlaf.FlatDarculaLaf; +import io.github.sanyarnd.applocker.AppLocker; import lombok.extern.slf4j.Slf4j; import org.aohe.constant.SocketEnum; import org.aohe.daemon.WatchDog; @@ -15,8 +16,19 @@ import org.aohe.constant.Control; @Slf4j public class Main { + private static final String JAVA_IO_TMPDIR = System.getProperty("java.io.tmpdir"); + public static void main(String[] args) throws Exception { + AppLocker locker = AppLocker.create("aoheSaneServiceLock").build(); UIManager.setLookAndFeel(new FlatDarculaLaf()); + try { + locker.lock(); + }catch (Exception e){ + JOptionPane.showMessageDialog(null,"程序启动失败,已有实例在运行!" + ,"AoHe Scan Program",JOptionPane.WARNING_MESSAGE); //消息对话框 + log.error("程序已被其他应用占用"); + System.exit(0); + } log.info("启动成功"); SocketUtils.start(SocketEnum.CAM_SOCKET); Control.WEBCAM_SHOW_TASK = new WebcamShowTask(); @@ -26,4 +38,8 @@ public class Main { watchDog.start(); TrayFrameUtf8.initSystemTrayUTF8(); } + + private void logLocking(String message) { + log.info("{}", message); + } } \ No newline at end of file diff --git a/src/main/java/org/aohe/show/TrayFrameUtf8.java b/src/main/java/org/aohe/show/TrayFrameUtf8.java index 1bda429..6dbf00c 100644 --- a/src/main/java/org/aohe/show/TrayFrameUtf8.java +++ b/src/main/java/org/aohe/show/TrayFrameUtf8.java @@ -51,13 +51,13 @@ public class TrayFrameUtf8 { // JMenuItem exit = new JMenuItem(getUTF8String("退出")); JMenuItem exit = new JMenuItem("退出"); exit.addActionListener(e -> { - log.info("点击了退出选项"); + //log.info("点击了退出选项"); System.exit(0); }); // JMenuItem showMainFrame = new JMenuItem(getUTF8String("显示主窗体")); JMenuItem showMainFrame = new JMenuItem("关于"); showMainFrame.addActionListener(e -> { - log.info("关于系统"); + //log.info("关于系统"); JOptionPane.showMessageDialog(null, "AoHe 的扫描托盘程序"); //显示窗口 }); @@ -90,9 +90,7 @@ public class TrayFrameUtf8 { jPopupMenu.add(showMainFrame); jPopupMenu.add(exit); - URL url = ResourceUtil.getResource("../res/ah.png"); - String trayPng = "../res/ah.png"; - log.info("file:{}", url.getFile()); + URL url = ResourceUtil.getResource("ah.png"); Image image = Toolkit.getDefaultToolkit().getImage(url.getFile()); // 创建系统托盘图标 TrayIcon trayIcon = new TrayIcon(image, "Scan Program For AH"); diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml new file mode 100644 index 0000000..d1bbc4b --- /dev/null +++ b/src/main/resources/logback.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + ${log.pattern} + + + + + + + + + ${log.path}/ScanService.%d{yyyy-MM-dd}.log + + 60 + 20GB + + + ${log.pattern} + + + + + + + + + + + + + diff --git a/src/main/resources/logbcak.xml b/src/main/resources/logbcak.xml deleted file mode 100644 index c2c222a..0000000 --- a/src/main/resources/logbcak.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - ${LOG_CONTEXT_NAME} - - - - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n - utf-8 - - - INFO - - - - - - true - - - ${LOG_HOME}/%d{yyyy-MM-dd}/info/aohe.scan.info.%d{yyyy-MM-dd-HH}.%i.log - - - - 30 - - - 10MB - - - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n - utf-8 - - - - INFO - ACCEPT - DENY - - - - - - - - - ERROR - ACCEPT - DENY - - - - - - - - WARN - ACCEPT - DENY - - - - - - - - - - - - - \ No newline at end of file