java.exe → Eclipse 提示 Tomcat 未啟動server.xml 端口 → 其他端口又被占用,全改則 Tomcat 未啟動netstat -ano 定位 PID 殺進程 → 同方案一結果端口被占用的真兇往往不是 Tomcat 本身,而是:
.metadata/.lock 導致工作區以為已有實例運行# Windows CMD (管理員權限)
netstat -ano | findstr "8080"
# 輸出示例:TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 12345
記住最右側 PID (12345)。
| 進程名稱 | 處理方式 |
|---|---|
java.exe / javaw.exe | 可能是殘留 Tomcat 或其他 Java 應用 → 結束進程 |
eclipse.exe | Eclipse 自身佔用調試端口 → 重啟 Eclipse 或修改 eclipse.ini 調試端口 |
系統服務 (如 OracleService) | 修改服務端口或禁用服務 |
| 其他應用 | 根據業務決定是否關閉/修改端口 |
# 刪除工作區鎖文件
del workspace\.metadata\.lock
server.xml 中三個端口:
建議:將三個端口統一加固定偏移量(如 +1000 → 9080/9005/9009),避免與常用端口衝突。
.metadata/.plugins/org.eclipse.wst.server.core 下對應 tmpX 目錄端口衝突本質是進程端口佔用,關鍵在於精準定位 PID 對應的真實進程,而非盲目殺 java.exe。系統化排查:netstat -ano | findstr "端口" → 任務管理器看 PID → 針對性處理 → 清理 Eclipse 元數據 → 重建 Server 配置。