签出调整
This commit is contained in:
Binary file not shown.
10
build/extraResources/java/.gitignore
vendored
10
build/extraResources/java/.gitignore
vendored
@@ -1,10 +0,0 @@
|
||||
# 自动生成的配置文件
|
||||
application.yml
|
||||
|
||||
# 运行时端口记录
|
||||
.running-port
|
||||
|
||||
# 日志文件
|
||||
logs/
|
||||
*.log
|
||||
|
||||
@@ -1,71 +1,20 @@
|
||||
==========================================
|
||||
NPQS9100 Java 后端服务说明
|
||||
NPQS9100 Java 后端服务
|
||||
==========================================
|
||||
|
||||
一、目录结构
|
||||
目录说明
|
||||
----------------------------------------
|
||||
entrance.jar - Spring Boot 应用程序
|
||||
application.yml - 应用配置文件(自动生成)
|
||||
application.yml.template - 配置模板
|
||||
kill-java-port.bat - 智能清理Java端口占用(紧急用)
|
||||
.running-port - 运行时端口记录(自动生成,勿删除)
|
||||
|
||||
|
||||
二、自动管理
|
||||
服务管理
|
||||
----------------------------------------
|
||||
正常情况下,Java 后端服务由主应用自动管理:
|
||||
- 应用启动时自动启动 Java 服务
|
||||
- 应用关闭时自动停止 Java 服务
|
||||
- 无需手动操作
|
||||
|
||||
|
||||
三、端口智能管理
|
||||
----------------------------------------
|
||||
- Java 服务默认使用端口:18092
|
||||
- 如果 18092 被占用,自动尝试:18093, 18094, ...
|
||||
- 启动成功后会记录实际端口到 .running-port 文件
|
||||
- kill-java-port.bat 会自动识别正确的端口进行清理
|
||||
|
||||
|
||||
四、手动清理工具
|
||||
----------------------------------------
|
||||
如果应用异常退出,Java 进程可能残留,导致:
|
||||
- 端口被占用,无法再次启动
|
||||
- 可以运行 kill-java-port.bat 清理残留进程
|
||||
|
||||
使用方法:
|
||||
1. 双击运行:kill-java-port.bat
|
||||
2. 脚本会自动识别实际使用的端口
|
||||
3. 清理完成后即可重新启动应用
|
||||
|
||||
|
||||
五、安全说明
|
||||
----------------------------------------
|
||||
⚠️ 进程停止安全性:
|
||||
- 应用自动停止时,只会停止应用自己启动的 Java 进程
|
||||
- 通过进程引用精确停止,不会影响其他 Java 应用
|
||||
- kill-java-port.bat 只清理占用特定端口的进程
|
||||
- 完全不会影响您电脑上的其他 Java 程序
|
||||
|
||||
⭐ 端口冲突处理:
|
||||
- 如果您的电脑上有其他应用占用了 18092 端口
|
||||
- 本应用会自动切换到其他端口(18093, 18094...)
|
||||
- kill-java-port.bat 会自动识别实际端口,精确清理
|
||||
|
||||
|
||||
六、常见问题
|
||||
----------------------------------------
|
||||
Q: Java 服务无法启动?
|
||||
A: 运行 kill-java-port.bat 清理残留进程
|
||||
|
||||
Q: 端口被占用怎么办?
|
||||
A: 应用会自动切换端口,无需手动处理
|
||||
|
||||
Q: 如何查看 Java 日志?
|
||||
A: 启动应用后,日志窗口会实时显示 Java 输出
|
||||
|
||||
Q: 配置文件在哪里?
|
||||
A: application.yml 由应用自动生成,请勿手动修改
|
||||
Java 后端服务由主应用自动管理:
|
||||
- 应用启动时自动启动
|
||||
- 应用关闭时自动停止
|
||||
- 默认端口:18092(如被占用会自动切换)
|
||||
|
||||
|
||||
==========================================
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
color 0E
|
||||
title 清理NPQS9100 Java端口占用
|
||||
cls
|
||||
echo ==========================================
|
||||
echo 清理 NPQS9100 Java 端口占用
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM 获取Java目录(脚本所在目录)
|
||||
set JAVA_HOME=%~dp0
|
||||
cd /d "%JAVA_HOME%"
|
||||
|
||||
REM 读取实际运行的端口
|
||||
set PORT_FILE=.running-port
|
||||
set JAVA_PORT=
|
||||
|
||||
if exist "%PORT_FILE%" (
|
||||
set /p JAVA_PORT=<"%PORT_FILE%"
|
||||
echo [√] 检测到运行记录:端口 %JAVA_PORT%
|
||||
echo.
|
||||
) else (
|
||||
echo [!] 未找到运行记录文件,使用默认端口 18092
|
||||
echo.
|
||||
set JAVA_PORT=18092
|
||||
)
|
||||
|
||||
echo [1] 检查端口 %JAVA_PORT% 占用情况...
|
||||
echo.
|
||||
|
||||
REM 查找占用该端口的连接
|
||||
netstat -ano | findstr ":%JAVA_PORT%" > "%TEMP%\java_port.txt"
|
||||
|
||||
if %errorlevel% equ 0 (
|
||||
echo 发现以下端口 %JAVA_PORT% 连接:
|
||||
echo ----------------------------------------
|
||||
type "%TEMP%\java_port.txt"
|
||||
echo ----------------------------------------
|
||||
echo.
|
||||
|
||||
echo [2] 提取进程ID并结束进程...
|
||||
echo.
|
||||
|
||||
REM 提取所有LISTENING状态的PID
|
||||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":%JAVA_PORT%" ^| findstr "LISTENING"') do (
|
||||
if not "%%a"=="0" (
|
||||
echo 正在结束进程 PID: %%a
|
||||
taskkill /F /PID %%a 2>nul
|
||||
if errorlevel 1 (
|
||||
echo [失败] 无法结束进程 %%a
|
||||
) else (
|
||||
echo [成功] 已结束进程 %%a
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
REM 如果还有其他状态的连接,也尝试结束
|
||||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":%JAVA_PORT%" ^| findstr /V "LISTENING"') do (
|
||||
if not "%%a"=="0" (
|
||||
echo 正在结束进程 PID: %%a
|
||||
taskkill /F /PID %%a 2>nul
|
||||
if errorlevel 1 (
|
||||
echo [已结束或无权限] 进程 %%a
|
||||
) else (
|
||||
echo [成功] 已结束进程 %%a
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
echo.
|
||||
echo [3] 清理完成
|
||||
|
||||
REM 等待2秒让进程完全释放
|
||||
timeout /t 2 /nobreak >nul
|
||||
|
||||
echo.
|
||||
echo [4] 再次检查端口 %JAVA_PORT%...
|
||||
netstat -ano | findstr ":%JAVA_PORT%"
|
||||
if errorlevel 1 (
|
||||
echo [√] 端口 %JAVA_PORT% 已完全释放
|
||||
|
||||
REM 删除端口记录文件
|
||||
if exist "%PORT_FILE%" (
|
||||
del "%PORT_FILE%"
|
||||
echo [√] 已清理端口记录文件
|
||||
)
|
||||
) else (
|
||||
echo [!] 仍有连接存在(可能是TIME_WAIT状态,会自动释放)
|
||||
)
|
||||
|
||||
) else (
|
||||
echo [√] 没有发现占用端口 %JAVA_PORT% 的进程
|
||||
|
||||
REM 删除端口记录文件
|
||||
if exist "%PORT_FILE%" (
|
||||
del "%PORT_FILE%"
|
||||
echo [√] 已清理端口记录文件
|
||||
)
|
||||
)
|
||||
|
||||
REM 清理临时文件
|
||||
if exist "%TEMP%\java_port.txt" del "%TEMP%\java_port.txt"
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 清理完成
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 说明:
|
||||
echo - 此脚本只清理 NPQS9100 应用使用的 Java 端口
|
||||
echo - 不会影响您电脑上的其他 Java 应用
|
||||
echo.
|
||||
pause
|
||||
|
||||
Reference in New Issue
Block a user