![](/img/trans.png)
[英]Exception is already defined in this compilation unit import java.lang.Exception;
[英]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 :
慢
快速
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的進程或將應用程序配置為在另一個端口上運行。 智能應用程序嘗試自動使用備用端口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.