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

来源:互联网 发布:linux 安装svn服务器 编辑:程序博客网 时间:2024/05/18 03:58

错误现象:

        tomcat启动不起来。


错误信息:

2016-11-4 9:06:08 org.apache.catalina.core.StandardServer await严重: StandardServer.await: create[localhost:8005]: java.net.BindException: Address already in use: JVM_Bindat 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:427)at org.apache.catalina.startup.Catalina.await(Catalina.java:781)at org.apache.catalina.startup.Catalina.start(Catalina.java:727)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:294)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)

错误原因:

        本地的8005端口被占用了。


解决方法:

        通过命令行窗口查看占用8005端口的进程。

        


        然后通过前辈的博客中列出的出错原因:

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。

        多次开启是怎么造成的呢?我用脚本.bat文件,开启了tomcat,没有关闭,然后又用myeclipse开启了程序,也就又开了一次tomcat。关闭其中一个即可。

        关闭tomcat的.bat之后,再次查看端口号为8005的进程,或者查看pid为9420的程序,表示没有占用情况了。

        

        在myeclipse中启动程序,也启动成功了。

总结:

        端口占用是个经常出现的问题,多多积累这方面的经验吧。




0 0