背景
今天启动项目,报端口被占用。
Caused by: org.jboss.netty.channel.ChannelException: Failed to bind to: /0.0.0.0:20880
at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:303)
at com.alibaba.dubbo.remoting.transport.netty.NettyServer.doOpen(NettyServer.java:92)
at com.alibaba.dubbo.remoting.transport.AbstractServer.<init>(AbstractServer.java:63)
... 48 more
Caused by: java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
不用想,肯定是某个进程没有被正常关闭,导致端口被占用了。(此时大概率是java 进程,因为本人启动的是java项目)
定位
本人window系统,所以使用windows 定位端口进程三件套
1、定位端口所在进程pid
netstat -ano | findstr 20880
结果
TCP 0.0.0.0:20880 0.0.0.0:0 LISTENING 13700(这个就是pid,进程id)
2、定位pid所在的进程
tasklist | findstr 13700
结果
java.exe 13700 Console 3 581,892 K
3、杀死pid所在的进程
taskkill /F /pid 13700
结果
成功: 已终止 PID 为 13700 的进程。
此处,windows系统,也可以通过任务管理器的方式,找到对应进程,右键结束任务来解决。比较简单,就不贴图了。
结果
再重启项目,重新启动。