完美解决Address already in use: JVM_Bind(端口冲突)问题!

1.错误描述

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.(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)

org.apache.coyote.http11.Http11Protocol pause
 

2.原因分析

从上面的描述中就可以看到,是因为端口8005被占用了。(不一定是80或者8080!)

 

3.解决方法

1.在cmd中输入命令:netstat -ano,查看所有端口的占用情况,找到占用端口8005的进程pid,然后在任务管理器中删除该进程,再启动tomcat就可以了。

2.修改tomcat 里conf文件夹里的server.xml的8005端口

 

4.通常出现Address already in use: JVM_Bind错误的可能性分析

就是当前端口已经有别的程序在占用着,所以要么把占用这个端口的程序关闭,要么重新换一个端口II.端口号被占用,如果你有装oracle的话,有可能是oracle使用了8080端口,oracle安装后并且如果启动了OracleHttp服务会占用8080端口III.我认为很可能是多启动了几次TOMCAT,在ECLIPSE下重复启动TOMCAT就会出现这个问题,你去调查一下看看是否是这个原因.IV.如果不是windows操作系统,那么80端口已经被占用.如果是windows操作系统.请检查是否装有IIS.V.启动了多个Tomcat。我就是因为启动了两个Tomcat,所以才会报这样的错误,通常情况下, 多次启动Tomcat或者非正常关闭Myeclipse,但是占用端口的进程没有关闭,也会出现这样的错误。解决方法是关闭javaw.exe进程。
 

你可能感兴趣的:(JavaWeb开发中常见的问题)