Files
yidaima_tools/bat/run_server.bat
2026-04-10 14:37:23 +08:00

100 lines
2.2 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
:: 强制切换到脚本所在目录解决管理员模式启动默认在System32的问题
cd /d "%~dp0"
echo 正确盘符: %~d0
echo 正确路径: %cd%
:: 使用/d参数强制切换驱动器+目录
cd /d "D:\code\server" 2>nul
if %errorlevel% neq 0 (
echo [ERROR] Can not enter D:\code\server
echo 请检查:
echo 1. D盘是否存在
echo 2. code目录是否存在
echo 3. 是否有权限访问
exit /b
)
echo 扫描子目录中...
dir /ad /b
set "first_dir="
for /f "delims=" %%d in ('dir /ad /b 2^>nul') do (
set "first_dir=%%d"
goto :dir_found
)
:dir_found
if not defined first_dir (
echo [ERROR] No subdirectory found
exit /b
)
echo 进入子目录: !first_dir!
cd /d "!first_dir!"
echo 当前路径: %cd%
if not exist "target\" (
echo 执行Maven构建...
call mvn clean package
) else (
echo 检测到 target 目录跳过Maven构建。
)
echo 进入target目录...
cd target
echo 目录内容:
dir /b
:: ========== 新增端口检查功能 ==========
echo 正在检查8080端口占用...
set "port_pid="
for /f "tokens=5" %%p in ('netstat -ano -p tcp ^| findstr ":8080" ^| findstr "LISTENING"') do (
set "port_pid=%%p"
echo 检测到端口占用PID: !port_pid!
taskkill /F /PID !port_pid! >nul 2>&1 && (
echo 成功终止进程: !port_pid!
) || (
echo [警告] 无法终止进程: !port_pid!
echo 可能需要管理员权限,请右键用管理员身份运行
)
)
if not defined port_pid (
echo 8080端口未被占用
)
:: ========== 端口检查结束 ==========
set "jar_file="
for /f "delims=" %%j in ('dir /b /a-d *.jar ^| findstr /v "original.jar"') do (
set "jar_file=%%j"
goto :jar_found
)
:jar_found
if not defined jar_file (
echo [ERROR] No valid jar found
echo 建议检查:
echo 1. Maven构建是否成功
echo 2. target目录内容
dir /b *.jar
exit /b
)
echo 启动Jar包: !jar_file!
java -jar "!jar_file!"
if %errorlevel% neq 0 (
echo [ERROR] Java启动失败 (code: %errorlevel%)
echo 可能原因:
echo 1. 缺少依赖
echo 2. 端口占用
echo 3. 配置错误
pause
)