2010-05-05 98 views
40

每當我重新啓動應用程序,它是建立在 的Java Struts的 MySQL和Jboss的4.05版本有時候 我得到的誤差已在使用地址:JVM_Bind地址已在使用:JVM_Bind的Java

只有解決我知道的是重新啓動機器,然後再試一次,它會起作用。 否則有時候我會按Ctrl-Alt-Del並停止所有與Java相關的進程,有時候這也會起作用。

但是確切的原因是什麼,我們如何防止這個問題呢?

+0

有時端口所有權不散,堅持你的Java程序關閉即使它。但是,在Eclipse Java EE中,除了程序之外,端口綁定被刪除 – CodyBugstein 2014-06-24 03:59:33

回答

38

地址已在使用:JVM_Bind

意味着一些其他的應用程序已經聽您的當前應用程序試圖綁定端口。

你需要做的是,爲你當前的應用程序或更好的端口;只需找出已經運行的應用程序並殺死它。

在Linux上,你可以找到通過使用應用程序的PID,

netstat -tulpn 
+3

您如何在Windows中找到我正在Windows上運行我的應用程序 – gmhk 2010-05-05 11:47:38

+7

netstat也可以在windows上運行控制檯嘗試:netstat -an 獲取更多信息,http://en.wikipedia.org/wiki/Netstat – phoenix24 2010-05-05 12:02:33

+1

另一個建議是不要在Windows上運行應用程序服務器。 否則,它也可能有助於不點擊重啓按鈕 - 而是停止,等待5秒鐘,然後再次手動啓動。有時候java進程只需要一點時間關閉。例如,如果他們忙於數據庫操作,他們往往會一直掛起,直到完成操作。 – rompetroll 2010-05-05 12:43:46

1

有關如何防止它的快速回答是,在重新啓動它之前,最有可能需要停止JBoss。

您應該能夠在控制檯視圖中調用「終止」按鈕來關閉服務器。

+0

我從Eclipse啓動JBoss – gmhk 2010-05-05 11:32:39

2

是否有可能是MySQL同一端口的JBoss上聽嗎?

是否有錯誤信息中給出端口號 - 像Address already in use: JVM_Bind:8080

可以更改端口的JBoss server.xml中進行測試。

1

該錯誤表示您正嘗試在另一個ServerSocket正在使用的端口上創建新的ServerSocket。因此,請儘量讓您的應用程序關閉您瞭解的所有套接字和連接,並確保您的應用程序已完全終止。還要檢查你的程序是否啓動了另一個程序。

12

我經常遇到這樣當端口的服務器(我使用JBoss)已經在使用

秋後算賬

  1. Apache HTTP服務器=>如果窗口工作拒絕服務。
  2. IIS =>使用停止ISS
  3. 的Skype =>酵母我的Skype其自身附着到端口80

要改變到的JBoss 4.2.x版結合本身去港口:

」C:\ jboss4.2.2 \ server \ default \ deploy \ jboss-web.deployer \ server。XML」

這裏默認的是服務器的實例 改變這裏的端口:

<連接器端口= 「8080」 地址= 「$ {} jboss.bind.address」 >

在上述例子中的端口綁定到8080

+0

關閉Skype並運行你的Java應用程序,然後調出Skype。 – signonsridhar 2016-10-17 21:18:35

0

請嘗試以下選項對JVM結合EXCE ption:

  1. 啓動和停止服務器。並檢查服務器進程ID並殺死並停止服務器。
  2. 轉到控制面板 - >管理工具 - >服務 - >檢查所有服務器並停止所有服務器,然後啓動您自己的服務器。
  3. 更改您使用的瀏覽器。例如,如果您使用IE的 ,將其更改爲Mozilla Firefox。
0

我也有這個問題。對於我來說,我無法啓動/停止的Openfire(該公司表示,已停止,但一切仍在運行)

sudo /etc/init.d/openfire stop 
sudo /etc/init.d/openfire start 

此外,重啓動Apache並沒有幫助

sudo /etc/init.d/apache2 restart 

的誤差在裏面:

/opt/openfire/logs/stderror.log 
Error creating server listener on port 5269: Address already in use 
Error creating server listener on port 5222: Address already in use 

我解決這個問題的方式,我不得不關閉服務器在我的主機管理區域內。

1

它可以在.. \ tomcat的也造成端口8080的雙重定義\的conf \ server.xml中:

<Connector port="8080" 
      enableLookups="false" redirectPort="8443" debug="0"/> 
<Connector port="8080" 
      enableLookups="false" address="127.0.0.1" maxParameterCount="30000"/> 
21

在windows這種情況發生在Eclipse的崩潰沒有一個乾淨關閉,將有本地Jetty或Tomcat服務器繼續運行。 當你重新打開Eclipse並嘗試再次啓動服務器時,這將導致「地址已被使用:JVM_Bind」

您可以通過打開任務管理器並找到javaw.exe進程並結束它來解決此問題。

然後您可以在Eclipse上重新啓動服務器。

enter image description here

0

我已經在Windows上是相同的。我的解決方案是獲取調試想要連接到的端口。 (在IntelliJ中,一個紅色矩形已經給出了信息:「運行Tomcat時出錯:無法打開調試器端口(127.0.0.1:XXXXX):...已經在使用中......」) 假設XXXXX是端口號。 然後我搜索的問題和PID在cmd窗口:

netstat -ano | find "CLOSE_WAIT" | find ":XXXXX" 

我得到的PID號在結果行的最後一個數字。(比方說,YYYY) 最後:

TASKKILL /PID YYYY 

一個額外的信息:WINSCP同時註銷了,大概這是造成我的問題。 :)

0

這最近發生在Eclipse上的兩個正在運行的Tomcat服務上啓用JMX時。我錯誤地把每個服務器的相同端口。

只需給每個JMX遠程不同的端口

服務器1

-Dcom.sun.management.jmxremote.port=9000 

服務器2

-Dcom.sun.management.jmxremote.port=9001 
相關問題