簡體   English   中英

localhost 的 Tomcat 服務器所需的幾個端口(8005、8080、8009)已被使用

[英]Several ports (8005, 8080, 8009) required by Tomcat Server at localhost are already in use

當我嘗試在 Eclipse 中的 Tomcat 上運行一個簡單的 JSP 程序時,出現以下錯誤。

localhost 上的 Tomcat v6.0 服務器所需的幾個端口(8005、8080、8009)已被使用。 服務器可能已經在另一個進程中運行,或者系統進程可能正在使用該端口。 要啟動此服務器,您需要停止其他進程或更改端口號。

這是怎么引起的,我該如何解決?

您已經運行了另一個 Tomcat 實例。 您可以通過在 Web 瀏覽器中訪問http://localhost:8080來確認這一點,並檢查您是否獲得了 Tomcat 默認主頁或特定於 Tomcat 的 404 錯誤頁面。 兩者都是 Tomcat 運行良好的同樣有效的證據; 如果沒有,那么您將收到特定於瀏覽器的 HTTP 連接超時錯誤消息。

你需要關閉它。 轉至Tomcat 安裝文件夾的/bin子文件夾並執行shutdown.bat (Windows) 或shutdown.sh (Unix) 腳本。 如果無效,請關閉 Eclipse,然后打開任務管理器並殺死所有java和/或javaw進程。

或者,如果您出於某種原因實際將其安裝為 Windows 服務(這就是為了生產而在您剛剛開發時沒有幫助),請打開服務管理器(開始 > 運行 > services.msc )並停止 Tomcat 服務。 如有必要,請完全卸載 Windows 服務。 對於開發,只需要 ZIP 文件就足夠了。

或者,如果您的實際意圖是同時運行兩個 Tomcat 實例,那么您必須配置第二個實例以偵聽不同的端口。 有關更多詳細信息,請參閱 Tomcat 文檔。

kill $(ps -aef | grep java | grep apache | awk '{print $2}')
  • 無需重新啟動 Eclipse
  • 如果出現上述錯誤,只需在終端中輸入這一行
  • 再次在 Eclipse 中啟動 tomcat。
  • 僅適用於基於 Linux 的系統(Ubuntu ..etc)

如果您在 Windows 上運行,請在命令行提示符下嘗試此操作:

netstat -ano

這將顯示所有正在使用的端口以及使用該端口的進程的進程 ID PID #。 然后Ctrl + Alt + Del並打開任務管理器以查看是哪個進程。

然后您可以選擇關閉/停止它或將您的服務器配置為使用另一個端口。 要檢查新選擇的端口(假設為 8010)是否可用,請執行以下操作:

netstat -ano | grep 8010

如果它沒有返回任何行,那么你很好。

要更改端口,請轉到服務器視圖,打開server.xml並更改那里的端口。 我的有這個條目:

Connector port="8010" protocol="AJP/1.3" redirectPort="8443"

如果您在 mac 環境中,就是我所做的。

從終端查找在此端口上運行的進程 ID,例如 8080:

lsof -i :8080

並殺死它:

kill -9 <PID>  

例子:

您可能會看到以下結果:

MacSys:bin krunal.$ lsof -i :8080

COMMAND   PID     USER   FD   TYPE     DEVICE  SIZE/OFF   NODE  NAME
java     21347   krunal  52u  IPv6      XXX      0t0      TCP  *:http-xxx (LISTEN)

並殺死它:( kill -9 21347

釋放已用於在 Eclipse 中運行 tomcat 服務器的端口的步驟

例如,假設使用了8080端口,我們需要騰出8080來運行tomcat。

第1步:

C:\\用戶\\用戶名>netstat -o -n -a | findstr 0.0:8080

TCP 0.0.0.0:3000 0.0.0.0:0 聆聽 3116

現在,我們可以看到 8080 的 LISTENING 端口是 3116 ,

我們現在需要殺死 3116

第2步:-

C:\\用戶\\用戶名>taskkill /F /PID 3116

第 3 步:轉到 Eclipse 並啟動 Server ,它將運行

如果您使用 Eclipse,則雙擊服務器並雙擊 tomcat 服務器,然后將打開一個文件。 在該文件中,將 HTTP 端口更改為其他端口號並保存( Ctrl + S ),然后再次啟動服務器。

如果 Eclipse 說

Tomcat v6.0 Server at localhost 需要的幾個端口(8005、8080、8009)已經在使用

出現此錯誤是因為 tomcat 可能正在后台運行,因此請先停止該服務器..遵循以下詳細信息。

解決辦法是:

  1. 打開“控制台”視圖(窗口->顯示視圖->控制台)
  2. 然后停止tomcat服務器。
  3. 然后打開“服務器”視圖並啟動它將工作的服務器。

謝謝!

我沒有另一個運行 Tomcat 的實例,也沒有使用“Tomcat 端口”(在我的例子中是 8088 端口)的其他進程。 Eclipse 在啟動 Tomcat 時發送相同的消息:

....服務器可能已經在另一個進程中運行,或者系統進程可能正在使用該端口。 要啟動此服務器,您需要停止其他進程或更改端口號。

我是這樣解決問題的:

  • 按提示轉到 tomcat 的 bin
  • 啟動啟動.bat
  • 啟動shutdown.bat
  • 通過 Eclipse 啟動 tomcat

在閱讀了所有建議的答案后我做了什么,因為我知道我的端口已經在使用中。 我在eclipse中的Servers選項卡下雙擊Tomcat,它打開概述信息,然后找到端口信息。 剛剛更改了沖突端口,因為我的是 8009 端口(啟動服務器時提到的錯誤)。 我已將其更改為 8008,並且運行良好。 如果更改的端口不會被使用,請嘗試服務器將啟動。

第 1 步: netstat -a -o -n它將顯示一個網絡列表,搜索本地地址,如 127.0.0.1:8080 並記下 PID (eq 3624)

C:\>netstat -a -o -n

步驟2: taskkill /F /PID 3624 運行此命令以終止該進程。

C:\>taskkill /F /PID 3624

發帖鏈接

在 Windows 上使用命令停止已經運行的 tomcat 實例並嘗試在 eclipse 中再次運行它,它可能會工作。

net stop tomcat7 

或者,如果您只想在其他端口上運行,則可以更改服務器 XML 中的端口。

解決您的問題的簡單方法:

服務器可能已經在另一個進程中運行,或者系統進程可能正在使用該端口。 要終止該端口,請執行以下操作:

1) 從以下鏈接下載TCPView(僅 285kb)

http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

2) 解壓文件夾並啟動TCPView應用程序。

3)右鍵單擊java.exe (因為8009、8005端口是java進程常用的端口),選擇結束進程選項。

這會很容易地停止另一個過程..

注意:運行TOMCATPATH/bin/shutdown.bat當 Tomcat 包含一些惡魔或非托管線程時,它可能不會關閉 Tomcat。 在這種情況下, TCPView可以正常工作,沒有任何問題。

我檢查了所有答案,但informing only to kill PID

如果您擁有所有人共享的終端訪問權限,這將無濟於事,或者您可能無權殺死 PID

在這種情況下,您可以做的是:

Double click on server

Go to Overview and change ports in Ports如下所示:

在此處輸入圖片說明

有時,如果即使嘗試了@BalusC 建議的 shutdown.bat 之后端口也沒有被釋放,您可以終止 javaw 進程。 執行以下步驟:

  1. 單擊開始菜單並打開“Windows powershell”
  2. 在打開之前右鍵單擊並選擇“以管理員身份運行”
  3. 輸入命令 ps。 您可能會看到如下圖像: Powershell 顯示當前正在運行的進程

  4. 查看進程“javaw”的進程號。進程號是列中最右邊的數字,例如我在javaw的圖像進程號中突出顯示。

  5. 輸入命令 kill 。 javaw 被殺死,現在您必須能夠運行該程序。

如果上述努力都沒有幫助,這里還有另一種選擇。 您可能正在使用共享驅動器中的 Eclipse(例如,H:) 如果是這樣,請將整個 Eclipse 目錄移動/復制到 C: 並重試。

我的 Eclipse 無法打開 Tomcat 服務器的端口(出現上述錯誤),甚至無法連接到互聯網。 我還嘗試了另一個 Tomcat 插件(Sysdeo),它也無法打開端口。

這些是我嘗試過的選項:

檢查並殺死其他Tomcat實例

  • 在命令提示符下, netstat -ano並檢查是否有任何其他進程正在使用沖突的端口。
  • 找到PID並殺死它
  • 再次嘗試啟動服務器。

在 Eclipse 中更改 Tomcat 端口

  • 在 Eclipse Server 選項卡中,雙擊 Tomcat 實例。 這將打開配置選項卡。
  • 在端口下,更改端口號。 (例如,18080)。

殺死 java.exe 和 javaw

請參閱我關於 Eclipse 未連接到 Internet 的其他答案( https://stackoverflow.com/a/372​​46087/4212710 )。

對於 Windows 用戶:

使用 CTRL+SHIFT+ESC 組合鍵直接進入任務管理器。

通過右鍵單擊並選擇“結束任務”來終止“java.exe”進程。

如果您在 Eclipse 中使用 Java EE 並嘗試在 Eclipse 中以調試模式啟動 Tomcat 服務器,那么您將收到此類錯誤。 您必須切換到 Eclipse 中的調試預期。 我已經解決了我的問題。

對我有用的更簡單的修復是通過“服務器”選項卡從 tomcat 中刪除我當前部署的 web 應用程序。 一旦我刪除它們,問題就會消失。 只需通過運行方式 > 在服務器上運行來重新部署您的項目。

當 Apache Tomcat 無法正常終止時,即使發送了關閉指令,也會經常出現該問題。 就我而言,使用 Tomcat 8,這種情況經常發生。 幸運的是,您可以使用 Windows PowerShell 和netstat命令創建一個簡單的腳本來終止該進程。

以下 PowerShell 腳本將解析netstat的輸出以查找正在偵聽127.0.0.1:8005任何進程,提取其 PID,然后終止該進程:

netstat -a -o -n `
 | select -skip 4 `
 | % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} `
 | ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} `
 | % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] }

如果您的server.xml將 Tomcat 配置為使用不同的端口或 IP,請相應地編輯腳本第四行上的正則表達式。

最后,我應該指出 Linux 上的情況更好,因為您可以指示 Tomcat 在啟動時將其 PID 保存到一個文件中,然后使用開關強制關閉 - 'nix 系統的關閉腳本已經具有不需要使用netstat終止進程和偵探工作的能力。

如果上述問題發生在基於 Windows 7 或 10 的操作系統中,則是因為 Tomcat 作為 Windows 服務運行。 要停止 Tomcat 作為 Windows 服務運行,請打開 Windows 控制面板。 找到服務“Apache Tomcat”並停止它。 另一種方法是使用 cmd 終止在端口 8080 上運行的進程。

打開 cmd 以管理員身份運行它。

  1. C:\\users\\username>netstat -o -n -a|findstr 0.0:8080
  2. TCP 0.0.0.0:8080 0.0.0.0:0 聆聽 2160。
  3. 上面的 2160 是在端口 8080 上運行的進程的進程 id 並使用以下命令殺死該進程
    C:\\users\\username>taskkill /F /PID 2160
  4. 轉到IDE並啟動Server,它將運行

這可能是因為您沒有正確停止您的 tomcat 服務。 要做到這一點,打開你的任務管理器,你可以看到一個javaw.exe服務。 首先停止該服務。 現在重新啟動你的 tomcat 它工作正常。

就我而言,它給了我錯誤:本地主機上的 Tomcat v8.0 服務器所需的端口 8005 已在使用中

我更改了 apache-tomcat-8.0.39\\conf\\server.xml 中的 8005 端口,但更改沒有得到反映。 然后我從 eclipse 中做了這些改變。 通過雙擊服務器並將端口從 8005 修改為 8006,它就可以工作了。 在此處輸入圖片說明

在放置 8006 之前,我檢查了 Windows shell 是否該端口可用。 通過執行以下命令:

netstat -a -o -n | findstr 8006

我遇到了同樣的問題,在搜索了如下所示的答案后: 1. 打開 Monitor Tomcat,如下圖所示: 在此處輸入圖片說明

  1. 只需按下停止鍵,如下圖所示:

在此處輸入圖片說明

經過多次試驗和建議的解決方案,最終它與我一起工作。

最好的問候, Kerelos Mikhail

在 Eclipse 上,對項目“Servers”下的 Tomcat 配置文件夾進行原始刪除。 我將其作為最后的希望進行了嘗試,並且奏效了。

在windows的情況下,我遇到了一個新東西......從/ bin文件夾中停止tomcat將不會立即釋放端口8080。釋放端口大約需要5-10分鍾。 10 分鍾后,如果我嘗試運行我的項目 Run-> Run on server .. 它允許運行。

我不確定我的理解是否正確!

本地主機上的Tomcat vX.X Server 所需的多個端口(8005、8080、8009)已在使用中

要檢查另一個 Tomcat 實例是否已經在運行或其他某個進程正在使用您可以使用的端口:

netstat -b -a在 Windows 的命令提示符下。 這列出了正在使用的端口,並為您提供了使用每個端口的可執行文件。 您需要在管理員組中才能執行此操作。

你可能會得到這樣的東西:

TCP 192.168.0.1:8009 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

TCP 192.168.0.1:8080 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

TCP 192.168.0.1:8005 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

打開任務管理器Ctrl + Shift + Esc ,並使用這些端口殺死Tomcat7.exe或任何其他進程。

當項目中的其他人也使用與您使用的端口號相同的端口號時,就會發生這種情況! 雙擊 tomcat 服務器,將端口號更改為 8585 或其他任何內容。 代碼現在將開始運行!

如何使用 PID 終止 Windows 服務 -

  1. 打開命令提示符並輸入netstat -ano
  2. 找到正在使用的端口的PID,在這種情況下,它將是8080、8005、8009。 假設這些端口的 PID 是 5760。
  3. 現在輸入taskkill /f /pid 5760
  4. 它將關閉 PID,端口將可供使用。 現在您可以通過 Windows 服務或 eclipse 本身正常啟動 tomcat。

謝謝

殺死卡在停止或啟動時的 Windows 服務

您的 Tomcat 可能已經在運行。 這就是為什么你有一個錯誤。 我以前也遇到過同樣的問題。 我很簡單地解決了它:

  1. 重啟你的電腦
  2. 打開日食
  3. 運行你的 Tomcat

就這樣。

在Windows操作系統中,右鍵單擊任務欄->“啟動任務管理器”->“進程”,然后檢查java.exe或javaw是否正在運行,然后單擊它並結束進程,然后重新啟動Tom Cat服務器。

  1. 在某些情況下,Skype會占用端口80,在這種情況下,請更改Skype設置,然后將81設置為Skype或更改tomcat配置。

不需要關閉Eclipse IDE,您的Tomcat可能已經在運行了。 這就是為什么您有一個錯誤。

從命令終端打開tomcat目錄>> bin >>(在我的情況下是tomcat9)

輸入命令

./shutdown.sh

它將關閉您正在運行的tomcat

在此處輸入圖片說明

最簡單的解決方案

殺死多個端口的單行命令:

kill $(lsof -t -i:8005,8080,8009) 

8005、8080 和 8009 是要釋放的端口。

或者,您可以在 linux 中嘗試sudo kill sudo lsof -t -i:8005

以上所有都不適合我。

我發現的是單擊“詳細信息”按鈕。 在此處輸入圖像描述

然后按照Multiple contexts with the same path error running web service in Eclipse using Tomcat

刪除了重復的行然后我得到了另一個錯誤。

The server cannot be started because one or more of the ports are invalid. Open the server editor and correct the invalid ports.

以下Can't start tomcatv9.0 in Eclipse

然后就可以了。

Macbook 解決方案:

第一步:停止運行Java的服務器:

通過轉到應用程序 > 實用程序 > 活動監視器打開活動監視器。 或者簡單地按 CMD + 空格鍵並開始輸入 Activity Monitor。 查找運行 Java 的進程並通過在終端中提供以下命令將其終止

kill -STOP <PID> 

其中 PID 是活動監視器中顯示的 Java 進程的進程 ID。 執行幾次並關閉並重新打開活動監視器以檢查 Java 是否未運行。

第 2 步:更改端口:

右鍵單擊 Eclipse 中的服務器,然后單擊“打開”。 將端口號從 8080 更改為 8081 或更大的值。

這應該有望啟動您的服務器。

在 windows 中打開任務管理器(Ctrl+Alt+Delete)和 go 到服務選項卡然后右鍵單擊 tomcat 和 select 停止然后在 eclipse 中啟動

參考以下博客《如何在不重啟電腦的情況下殺死tomcat》

http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html

希望這會在將來對某人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM