在使用Eclipse+Maven的自动发布项目的时候偶尔会碰到这样的问题,错误信息如下:
Caused by: java.net.BindException: Address already in use: JVM_Bind <null>:9090
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:406)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:981)
... 30 more
Caused by: java.net.BindException: Address already in use: JVM_Bind
at java.net.DualStackPlainSocketImpl.bind0(Native Method)
at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:181)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:393)
... 34 more
那么,如何解决呢?
首先,这个问题是个明显的端口占用问题。那么,你需要使用这个命令来查询端口的占用情况:
netstat -ano
一般来说,你会得到如下的信息:
注意黄色部分。末尾的6788是windows系统的进程ID(PID),你可以在任务管理器里面找到它(任务管理器菜单->查看->选择列->PID),然后杀之。
这个问题就可以解决了。