问题描述:
使用IDEA开发Spring Boot项目,今天启动提示端口占用,导致启动失败!(我昨天也是用的这个端口,可以正常启动)
*************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
解决思路:
1.更换端口
既然提示了端口占用,自然想到那就换个端口用呗。于是改为了8081,8082,8083,但都是失败!
事后发现,换端口是可行的,但是我换的这个恰好不能用!其实我们可以修改application.properties文件 ,改成随机端口。
// 0 表示是随机端口
server.port=0
2.杀掉占用端口的进程
换端口不行,那就看看这些端口是谁占用了,于是查找8081端口谁占用了?但是发现并没有进程占用!
> netstat -ano|findstr "8081"
如果查找到了占用端口,可以通过PID,去任务管理器找到对应的进程,然后暴力地直接杀了这个进程(如果你非用这个端口不可)
> netstat -ano|findstr "8080" TCP 0.0.0.0:8680 0.0.0.0:0 LISTENING 30556
3.更改保留端口范围
显然我遇到的不是这个情况,经过翻阅,知道还有一种可能就是端口属于系统保留端口,也会出现这种情况
> netsh interface ipv4 show excludedportrange protocol=tcp 协议 tcp 端口排除范围 开始端口 结束端口 ---------- -------- 80 80 1057 1156 1157 1256 1457 1556 1757 1856 1857 1956 1957 2056 3830 3929 3930 4029 4030 4129 5357 5357 7456 7555 7556 7655 7681 7780 7781 7880 7881 7980 7981 8080 8081 8180
...
果不其然,我使用的端口,和尝试修改的端口都在端口排除范围内(7981——8080,8081——8180)!!!
如果需要使用这几个端口,那就只能使用管理的身份运行 CMD ,设置动态端口的范围,使得这个保留端口的范围避开我们需要的端口范围。
// 范围可以自己设定
> netsh int ipv4 set dynamicport tcp start=49152 num=16383 > netsh int ipv4 set dynamicport udp start=49152 num=16383
然后,重新启动电脑,曾经被占用的端口就可以继续使用了