From 631d1684ca5ba17ac68ed1d98f30cee384fbb867 Mon Sep 17 00:00:00 2001
From: 上海郢昱 <15922366+miu-haiqing@user.noreply.gitee.com>
Date: 星期三, 16 九月 2026 11:00:56 +0800
Subject: [PATCH] 运行新增托盘图标,新增查看串口状态、关闭串口监听、推出的右键菜单
---
src/main/java/com/hwtd/mes/collect/DataAcquisitionApplication.java | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 54 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/hwtd/mes/collect/DataAcquisitionApplication.java b/src/main/java/com/hwtd/mes/collect/DataAcquisitionApplication.java
index 362e762..6ea359b 100644
--- a/src/main/java/com/hwtd/mes/collect/DataAcquisitionApplication.java
+++ b/src/main/java/com/hwtd/mes/collect/DataAcquisitionApplication.java
@@ -1,13 +1,66 @@
package com.hwtd.mes.collect;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import javax.swing.JOptionPane;
+import java.net.BindException;
+
+@Slf4j
@SpringBootApplication
public class DataAcquisitionApplication {
public static void main(String[] args) {
- SpringApplication.run(DataAcquisitionApplication.class, args);
+ SpringApplication application = new SpringApplication(DataAcquisitionApplication.class);
+ // 绯荤粺鎵樼洏鍥炬爣渚濊禆 AWT锛歋pring Boot 榛樿 java.awt.headless=true锛岃繖閲屽繀椤诲叧鎺夛紝鍚﹀垯鎵樼洏涓嶄細鏄剧ず
+ application.setHeadless(false);
+ try {
+ application.run(args);
+ } catch (Throwable e) {
+ // 鍙屽嚮 jar 鍚姩鐢ㄧ殑鏄� javaw锛屾病鏈夋帶鍒跺彴锛屽惎鍔ㄥけ璐ユ椂蹇呴』寮圭獥锛屽惁鍒欑敤鎴蜂粈涔堥兘鐪嬩笉鍒�
+ showStartupError(e);
+ System.exit(1);
+ }
}
+ /**
+ * 鍚姩澶辫触鎻愮ず锛氬啓鏃ュ織 + 寮圭獥
+ */
+ private static void showStartupError(Throwable error) {
+ String message = buildStartupErrorMessage(error);
+ try {
+ log.error("鏁版嵁閲囬泦鍣ㄥ惎鍔ㄥけ璐ワ細{}", message, error);
+ } catch (Throwable ignored) {
+ // 鏃ュ織绯荤粺杩樻病鍒濆鍖栧ソ鏃跺拷鐣�
+ }
+ try {
+ JOptionPane.showMessageDialog(null, message, "鏁版嵁閲囬泦鍣ㄥ惎鍔ㄥけ璐�", JOptionPane.ERROR_MESSAGE);
+ } catch (Throwable t) {
+ // 娌℃湁妗岄潰浼氳瘽鏃跺脊涓嶄簡绐楋紝鍙兘闈犳棩蹇�
+ System.err.println(message);
+ }
+ }
+
+ /**
+ * 缁勮鍚姩澶辫触鎻愮ず锛氱鍙h鍗犵敤鏃剁粰鍑烘洿鏄庣‘鐨勫鐞嗗姙娉�
+ *
+ * @param error 鍚姩寮傚父
+ * @return 鎻愮ず鍐呭
+ */
+ public static String buildStartupErrorMessage(Throwable error) {
+ Throwable root = error;
+ while (root.getCause() != null && root.getCause() != root) {
+ root = root.getCause();
+ }
+ String detail = root.getMessage() == null ? root.getClass().getName() : root.getMessage();
+ if (root instanceof BindException
+ || detail.contains("already in use")
+ || detail.contains("Address already in use")) {
+ return "鏈嶅姟绔彛宸茶鍗犵敤锛岀▼搴忓彲鑳藉凡缁忓湪杩愯銆俓n"
+ + "璇峰厛鐪嬩换鍔℃爮鍙充笅瑙掓湁娌℃湁閲囬泦鍣ㄥ浘鏍囷紙鍙抽敭 鈫� 閫�鍑猴級锛�"
+ + "鎴栧湪浠诲姟绠$悊鍣ㄩ噷缁撴潫瀵瑰簲鐨� java 杩涚▼鍚庡啀鍚姩銆�";
+ }
+ return "鍚姩澶辫触锛�" + detail + "\n璇︾粏閿欒璇锋煡鐪嬫棩蹇楁枃浠躲��";
+ }
}
--
Gitblit v1.9.3