首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Tomcat 8 啟動報錯「Port 8080 already in use」完整排查與解決方案

     編輯:Java 綜合教學

錯誤現象

Eclipse/MyEclipse 啟動 Tomcat v8.0 時彈窗報錯:

Port 8080 required by Tomcat v8.0 Server at localhost is already in use. The server may already be running in another process, or a system process may be using the port.

根因分析

端口 8080 被其他進程佔用。常見佔用者:

  • 已運行的另一個 Tomcat 實例
  • 系統服務(如 Oracle XDB、SQL Server Reporting Services)
  • 第三方軟件(如本文案例中的 NI Application Web Server)

排查步驟(Windows 環境)

1. 查找佔用 8080 端口的 PID

netstat -ano | findstr :8080

輸出示例:

TCP    0.0.0.0:8080    0.0.0.0:0    LISTENING    4208

最後一列 4208 即為進程 PID。

2. 根據 PID 定位進程名稱

tasklist | findstr "4208"

輸出示例:

ApplicationWebServer.exe  4208 Services 0  10,392 K

3. 確認進程詳情並決定處理方式

  • 打開任務管理器 → 詳細信息 找到 PID 4208
  • 右鍵 → 打開文件位置 或 屬性 確認程式來源
  • 本例中為 NI Application Web Server(National Instruments 軟件自帶服務)

解決方案

方案 A:停止佔用進程(推薦臨時開發)

  1. 服務管理器 services.msc 找到 NI Application Web Server
  2. 右鍵 → 停止,並將啟動類型改為 手動 或 禁用
  3. 回到 Eclipse,重新啟動 Tomcat,端口釋放,啟動成功

方案 B:修改 Tomcat 端口(長期共存)

  1. 打開 ${CATALINA_HOME}/conf/server.xml
  2. 修改 <Connector port="8080" .../> 為其他端口(如 8081、8888)
  3. 保存後重啟 Tomcat
  4. Eclipse 中 Server 視圖雙擊 Server,修改 Ports 區域的 HTTP/1.1 端口保持一致

方案 C:殺死進程(強制,慎用)

taskkill /PID 4208 /F

適用於無法通過服務管理器停止的頑固進程。

驗證啟動成功

  1. Eclipse Console 輸出 Server startup in xxx ms
  2. 瀏覽器訪問 https://localhost:8080/(或新端口)顯示 Tomcat 首頁
  3. Eclipse 內部瀏覽器 Ctrl+Alt+R 刷新確認

預防建議

  • 開發機安裝軟件時注意是否自帶 Web 服務佔用常用端口
  • 統一團隊開發端口規範(如 8080/8081/8082 專留 Tomcat)
  • 使用 Docker 容器化隔離端口衝突
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved