@echo off chcp 65001 >nul title IoT Platform - 全栈启动(使用预编译JAR) set JAVA17=C:\Program Files\Eclipse Adoptium\jdk-17.0.19.10-hotspot\bin\java.exe if not exist "%JAVA17%" ( echo [错误] 找不到 Java 17: %JAVA17% echo 请确认 JDK 17 已安装在此路径 pause exit /b 1 ) :: 各服务 JAR(注意:iot-device 带 exec classifier,其余为 fat jar 原名) set DEV_JAR=%~dp0backend\iot-device\target\iot-device-1.0.0-exec.jar set DATA_JAR=%~dp0backend\iot-data\target\iot-data-1.0.0.jar set RULE_JAR=%~dp0backend\iot-rule\target\iot-rule-1.0.0.jar set ALARM_JAR=%~dp0backend\iot-alarm\target\iot-alarm-1.0.0.jar :: 校验 JAR 是否存在 for %%J in ("%DEV_JAR%" "%DATA_JAR%" "%RULE_JAR%" "%ALARM_JAR%") do ( if not exist %%J ( echo [错误] 找不到JAR文件: %%J echo 请先编译: mvn -f backend/pom.xml -pl iot-device,iot-data,iot-rule,iot-alarm -am package -DskipTests pause exit /b 1 ) ) :: 释放已占用的后端端口(避免重跑时端口冲突) echo [信息] 清理 9081-9084 端口旧进程... for %%P in (9081 9082 9083 9084) do ( for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":%%P.*LISTENING"') do ( taskkill /F /PID %%a >nul 2>&1 ) ) timeout /t 3 /nobreak >nul echo ============================================ echo IoT Platform 全栈启动(4 个后端服务) echo ============================================ echo. echo [1/4] 启动 iot-device (端口 9081)... start "iot-device-9081" cmd /k ""%JAVA17%" -jar "%DEV_JAR%"" echo [2/4] 启动 iot-data (端口 9082)... start "iot-data-9082" cmd /k ""%JAVA17%" -jar "%DATA_JAR%"" echo [3/4] 启动 iot-rule (端口 9083)... start "iot-rule-9083" cmd /k ""%JAVA17%" -jar "%RULE_JAR%"" echo [4/4] 启动 iot-alarm (端口 9084)... start "iot-alarm-9084" cmd /k ""%JAVA17%" -jar "%ALARM_JAR%"" echo. echo ============================================ echo 4个后端服务已在新窗口启动 echo 等待30秒后启动前端... echo ============================================ timeout /t 30 /nobreak >nul echo. echo [下一步] 启动 uniapp 前端 (端口 9000) start "uniapp-9000" cmd /k "cd /d f:\work\iotsaas\uniapp && npm run dev:h5" echo. echo [后台] 启动 admin 管理后台 (端口 3000) start "admin-3000" cmd /k "cd /d f:\work\iotsaas\frontend\admin && (if not exist node_modules call npm install) && npm run dev" echo. echo 全部启动完成! echo 设备服务 API: http://localhost:9081/doc.html echo 数据服务 API: http://localhost:9082/doc.html echo 规则服务 API: http://localhost:9083/doc.html echo 告警服务 API: http://localhost:9084/doc.html echo uniapp 前端: http://localhost:9000 echo admin 后台: http://localhost:3000 echo. echo 关闭各个服务请在对应窗口中按 Ctrl+C pause