IDEA關(guān)閉SpringBoot程序后仍然占用端口的排查與解決方法
問題描述
在使用 IntelliJ IDEA 開發(fā) Spring Boot 應(yīng)用時,有時即使關(guān)閉了應(yīng)用,程序仍然占用端口(例如:4001 端口)。這會導(dǎo)致重新啟動應(yīng)用時出現(xiàn)端口被占用的錯誤,在windows系統(tǒng)下有時候執(zhí)行命令netstat -ano | findstr "4001"也無法找到被占用的端口,本文將詳細(xì)描述如何解決此問題。
問題復(fù)現(xiàn)
啟動springboot應(yīng)用后,提示端口已經(jīng)被占用
排查步驟
1 確認(rèn)端口占用情況
使用以下命令檢查哪個進(jìn)程占用了目標(biāo)端口:
netstat -ano | findstr :<端口號>
示例:檢查 4001 端口是否被占用。
netstat -ano | findstr :4001
正常端口被占用情況下,會顯示如下,畫框部分13036為應(yīng)用程序PID
2 找到占用端口的進(jìn)程 ID
在win11下可以直接使用任務(wù)管理器搜索PID找到占用端口的程序,例如搜索到4001端口被QQ占用
或者cmd命令框輸入如下命令查找
tasklist | findstr "13036"
3 終止占用端口的進(jìn)程
直接任務(wù)管理器關(guān)閉程序
使用以下命令強(qiáng)制終止該進(jìn)程:
taskkill /PID <PID> /F
示例:
taskkill /PID 13036 /F
注意:極端情況下,idea運(yùn)行spirngboot程序時,由于強(qiáng)制關(guān)閉或者其他原因,造成java程序沒有徹底釋放,還在后臺運(yùn)行,導(dǎo)致原java程序始終占用著端口,具體表現(xiàn)為:
啟動后端口任被占用
查找被占用的4001端口時,顯示空白找不到
解決方法:
檢查是否有殘留的 Java 進(jìn)程:
tasklist | findstr java
如果發(fā)現(xiàn)多余的 Java 進(jìn)程,強(qiáng)制結(jié)束它:
taskkill /f /pid <PID>
示例:強(qiáng)制刪除多余的java線程。
netstat -ano | findstr :22084 netstat -ano | findstr :22320
刪除完畢后,重新啟動springboot程序,端口占用解除,啟動成功。
以上就是IDEA關(guān)閉SpringBoot程序后仍然占用端口的排查與解決方法的詳細(xì)內(nèi)容,更多關(guān)于IDEA關(guān)閉SpringBoot程序仍占用端口的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java向數(shù)據(jù)庫中插入數(shù)據(jù)后獲取自增ID的常用方法
有時候因?yàn)樾略龅男枨笮枰@取剛剛新增的數(shù)據(jù)的自增的主鍵ID,下面這篇文章主要給大家介紹了關(guān)于Java向數(shù)據(jù)庫中插入數(shù)據(jù)后獲取自增ID的常用方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11詳解Spring MVC如何測試Controller(使用springmvc mock測試)
這篇文章主要介紹了詳解Spring MVC如何測試Controller(使用springmvc mock測試),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12詳解SpringMVC的url-pattern配置及原理剖析
這篇文章主要介紹了SpringMVC的url-pattern配置及原理剖析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Spring?Boot?+?Mybatis?Plus實(shí)現(xiàn)樹狀菜單的方法
這篇文章主要介紹了Spring?Boot?+?Mybatis?Plus實(shí)現(xiàn)樹狀菜單,包括實(shí)體類中添加子菜單列表和集合及構(gòu)建菜單樹的詳細(xì)代碼,代碼簡單易懂,需要的朋友可以參考下2021-12-12