sane-service/src/main/java/org/aohe/Main.java

65 lines
1.9 KiB
Java
Raw Normal View History

2024-05-13 14:41:54 +08:00
package org.aohe;
2024-05-29 14:41:24 +08:00
import com.formdev.flatlaf.FlatDarculaLaf;
2024-06-04 14:58:49 +08:00
import io.github.sanyarnd.applocker.AppLocker;
import lombok.extern.slf4j.Slf4j;
import org.aohe.core.sane.utils.SaneSessionUtils;
2024-05-29 14:41:24 +08:00
import org.aohe.core.swing.NewWindow;
2024-05-15 20:24:05 +08:00
import org.aohe.core.utils.CommandUtils;
import org.aohe.core.utils.SystemUtils;
import org.aohe.core.web.SocketFactory;
2024-05-15 20:24:05 +08:00
import javax.swing.*;
2024-06-04 16:09:07 +08:00
import java.nio.file.Path;
@Slf4j
2024-05-13 14:41:54 +08:00
public class Main {
2024-06-04 16:09:07 +08:00
private static final String JAVA_IO_TMPDIR = System.getProperty("java.io.tmpdir");
2024-05-27 16:31:25 +08:00
public static void main(String[] args) {
2024-06-04 14:58:49 +08:00
log.info(" 当前系统类型: {}", SystemUtils.getOsName());
2024-06-04 16:09:07 +08:00
AppLocker locker = AppLocker.create("aoheSaneServiceLock").setPath( Path.of(JAVA_IO_TMPDIR) ).build();
2024-06-04 15:51:16 +08:00
try {
2024-06-04 14:58:49 +08:00
//启动锁,只允许启动一个
locker.lock();
//设置窗口主题
2024-05-28 13:53:31 +08:00
//FlatLightLaf.setup();
2024-05-29 14:41:24 +08:00
UIManager.setLookAndFeel(new FlatDarculaLaf());
2024-05-28 13:53:31 +08:00
} catch (UnsupportedLookAndFeelException e) {
throw new RuntimeException(e);
2024-06-04 14:58:49 +08:00
} catch (Exception ex) {
2024-06-04 16:09:07 +08:00
log.error("应用已经启动,当前进程退出。",ex);
2024-06-04 14:58:49 +08:00
System.exit(0);
2024-05-15 20:24:05 +08:00
}
//初始化其他资源
init();
2024-05-29 14:41:24 +08:00
SwingUtilities.invokeLater(() -> new NewWindow().setVisible(true));
2024-05-13 14:41:54 +08:00
}
public static void init(){
log.info("程序初始化开始...");
CommandUtils.initSanedSocket();
stopGracefully();
log.info("Hook注册成功...");
}
public static void stopGracefully() {
log.info("优雅退出Hook注册");
//优雅退出,在程序停止时,销毁关键资源占用
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
log.info("开始资源释放");
//释放sane资源
SaneSessionUtils.resource();
SocketFactory.stop();
log.info("socket 服务已关闭 ");
}));
}
2024-05-31 16:08:18 +08:00
2024-05-13 14:41:54 +08:00
}