| | |
| | | import javax.swing.SwingUtilities; |
| | | |
| | | public class Mains { |
| | | // 记录启动时间 |
| | | // 记录启动时间 |
| | | private static long startTime; |
| | | |
| | | public static void main(String[] args) { |
| | | // 记录启动时间 |
| | | // 记录启动时间 |
| | | startTime = System.currentTimeMillis(); |
| | | // 记录打开日志 |
| | | // 记录打开日志 |
| | | LogUtil.logOpen(); |
| | | |
| | | if (SingleInstanceLock.lock()) { |
| | | try { |
| | | // 在事件调度线程中创建和显示GUI |
| | | // 在事件调度线程中创建和显示GUI |
| | | SwingUtilities.invokeLater(() -> { |
| | | try { |
| | | // 创建并显示主界面 |
| | | // 创建并显示主界面 |
| | | |
| | | new MainFrame().setVisible(true); |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | LogUtil.log("启动可视化界面时发生错误: " + e.getMessage()); |
| | | LogUtil.log("启动可视化界面时发生错误: " + e.getMessage()); |
| | | } |
| | | }); |
| | | } finally { |
| | | // 添加关闭钩子 |
| | | // 添加关闭钩子 |
| | | Runtime.getRuntime().addShutdownHook(new Thread(() -> { |
| | | // 记录关闭日志 |
| | | // 记录关闭日志 |
| | | LogUtil.logClose(startTime); |
| | | // 释放单实例锁 |
| | | // 释放单实例锁 |
| | | SingleInstanceLock.release(); |
| | | })); |
| | | } |
| | | } else { |
| | | // 显示程序已在运行的警告 |
| | | SingleInstanceLock.showAlreadyRunningWarning(); |
| | | // 退出程序 |
| | | System.exit(0); |
| | | } |
| | | |
| | | } |
| | | } |