問題描述:
使用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
然后,重新啟動電腦,曾經被占用的端口就可以繼續使用了