簡體   English   中英

java.lang.Exception:端口8083已在使用中

[英]java.lang.Exception: Port 8083 already in use

我在控制台上遇到異常,它是:

java.lang.Exception: Port 8083 already in use.

如何解決此異常? 如果我將獲得使用8083端口的服務,那么我可以停止該服務,這樣我就可以解決這個問題。

謝謝你的幫助!

java.lang.Exception:端口8083已在使用中。

該錯誤意味着另一個應用程序已經綁定了該端口,因此您無法使用它。 通常,這意味着服務器正在運行(或正在退出),但仍然打開特定端口。 當您嘗試關閉一台服務器並啟動新版本時,通常會出現此錯誤,但第一台服務器在啟動新服務器時並未完全關閉。 您需要找到有問題的服務器,您可能必須使用kill -9或其他東西來殺死它。

找出端口打開的應用程序的好工具是lsof 這至少應該適用於大多數Unix(Linux)和MacOSX。

lsof -i :8083

lsof用於LiSting系統上的Open Files,但-i選項用於Internet地址:

-i [i]   This option selects the listing of files any of whose Internet
         address matches the address specified in i.
        [46][protocol][@hostname|hostaddr][:service|port]

我偶爾會用JBoss服務器得到這個。 您需要重新啟動Java並不直觀,但上述方法不起作用。

對於Mac OS X

  1. 打開活動監視器。
  2. 過濾“java”
  3. 退出任何進程(通常只有一個進程)。
  4. 重啟服務器。

快速

ps aux | grep 'java' ps aux | grep 'java'列出當前的Java進程及其ID。

kill -9 process_id_goes_here

拋出異常是因為您嘗試綁定到另一個進程已在使用的端口。

使用命令行中的netstat -a將顯示打開端口列表以及正在使用它們的進程。 比你可以殺了它。

更新:

在Windows上,您可以使用netstat -ao列出所有正在使用的端口以及擁有該連接的進程ID。

在Linux上,您可以使用netstat -p列出進程ID /程序名稱。

例外意味着:已經有一個開放的'8083'端口。 您可以通過停止該服務或自己使用其他端口來解決此問題。

我猜你自己的服務已經在你嘗試啟動時運行,所以在啟動新實例之前停止它。

(我知道Tomcat運行在8080上,有時人們會將其更改為8083,但任何人都無法知道使用該端口在您的計算機上運行的服務。)

還有另一種可能性:您可能嘗試綁定到錯誤的IP地址 - JBoss會將此報告為無法綁定到端口。

檢查run.sh的-b選項,確保它是0.0.0.0或服務器的IP或主機名。
- 如果它是0.0.0.0,那么問題是端口正在使用中。
- 如果是IP,請使用/ sbin / ifconfig(或Windows上的ipconfig)驗證它是否是正確的ip
- 如果是主機名,則運行
telnet hostname_here
並驗證解析的IP地址是否是正確的IP地址。

我有這個確切的問題,我發現有人在/ etc / hosts文件中放入了錯誤的IP地址。 一旦我修復了文件,JBoss就開始了。

在Eclipse中,如果出現此錯誤,則表示有一個或兩個Eclipse實例使用相同的端口。

解決方案是轉到操作系統的進程管理器並終止Eclipse和Java進程。

確保文件conf / bindingservices.beans / META-INF / bindings-jboss-beans.xml中的兩個JBOSS實例上的端口不同

有大約10個端口可以更改

終止使用端口8083的進程或將應用程序配置為在另一個端口上運行。 智能應用程序嘗試自動使用備用端口。

如果要啟動服務器來部署應用程序,則可能會發生任何其他進程或應用程序正在使用該端口。 Outlook,Skype或其他應用程序有時會在我的工作中執行此操作。 使用像CPorts這樣的程序來終止連接並重新啟動服務器。

暫無
暫無

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

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