java.net.BindException: Address already in use: JVM_Bind

1.錯誤描述

2011-7-20 11:05:18 org.apache.catalina.core.StandardServer await
嚴重: StandardServer.await: create[8005]:
java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:373)
at org.apache.catalina.startup.Catalina.await(Catalina.java:662)
at org.apache.catalina.startup.Catalina.start(Catalina.java:614)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2011-7-20 11:05:18 org.apache.coyote.http11.Http11Protocol pause
前端

2.緣由分析

從上面的描述中就能夠看到,是由於端口8005被佔用了。java

3.解決方法

在cmd中輸入命令:netstat -ano,查看全部端口的佔用狀況,找到佔用端口8005的進程pid,而後在任務管理器中刪除該進程,再啓動tomcat就能夠了。這裏若是以爲使用cmd命令不方便的話,可使用一個叫作TCPView的軟件。apache

cmd下查看端口以下圖所示:windows


TCPView下愛看端口以下圖所示:tomcat


4.一般出現Address already in use: JVM_Bind錯誤的可能性分析

I.就是當前端口已經有別的程序在佔用着,因此要麼把佔用這個端口的程序關閉,要麼從新換一個端口
II.端口號被佔用,若是你有裝oracle的話,有多是oracle使用了8080端口,oracle安裝後而且若是啓動了OracleHttp服務會佔用8080端口
III.我認爲極可能是多啓動了幾回TOMCAT,在ECLIPSE下重複啓動TOMCAT就會出現這個問題,你去調查一下看看是不是這個緣由.
IV.若是不是windows操做系統,那麼80端口已經被佔用.若是是windows操做系統.請檢查是否裝有IIS.
V.啓動了多個Tomcat。
我就是由於啓動了兩個Tomcat,因此纔會報這樣的錯誤,一般狀況下, 屢次啓動Tomcat或者非正常關閉Myeclipse,可是佔用端口的進程沒有關閉,也會出現這樣的錯誤。解決方法是關閉javaw.exe進程。
相關文章
相關標籤/搜索