Idea啟動SpringBoot程序報錯:Veb server failed to start. Port 8082 was already in use;端口沖突的原理與解決方案
Idea啟動SpringBoot程序報錯:Veb server failed to start. Port 8082 was already in use
啟動項目發(fā)現(xiàn)端口被占用,問題是項目端口就是常用的開發(fā)端口(8080系列...)
報錯信息為:
Description: Veb server failed to start. Port 8082 was already in use Action: Identify and stop the process that's listening on port 8082 or configure this application to listen on another port.
一、解決辦法
1、查找占用端口的進程
- 以管理員身份打開命令提示符。
- 輸入以下命令并按回車:
netstat -aon | findstr :8082
記下輸出中的PID(進程ID)
2、結(jié)束進程(兩種方法)
①在任務(wù)管理器中終結(jié)指定pid的進程
在任務(wù)管理器中,轉(zhuǎn)到“進程”標簽,找到你記下的PID對應(yīng)的進程,右鍵點擊它,然后選擇“結(jié)束任務(wù)”。
②在命令提示符中結(jié)束進程
將<PID>替換為實際的進程ID。
taskkill /PID <PID> /F
3、重新啟動項目
終結(jié)占用端口的進程后,重新啟動項目即可。
4、對于macOS和Linux系統(tǒng)
查找進程的指令為:
sudo lsof -i :8082
結(jié)束進程的指令為:
sudo kill -9 <PID>
其余步驟一致。
二、博主親歷
我出現(xiàn)8082端口占用的時候發(fā)現(xiàn)是QQ占用了該端口,直接把QQ退出之后重新啟動項目后解決。然后再登錄QQ也沒有沖突,問題解決。
QQ在運行時需要監(jiān)聽特定的端口以進行網(wǎng)絡(luò)通信??赡苁且驗镼Q的某個服務(wù)或功能需要在這個端口上進行數(shù)據(jù)傳輸或接收。當QQ啟動時,它會嘗試綁定到這個端口,如果該端口未被其他服務(wù)使用,QQ就會成功占用該端口進行通信。如果端口8082被QQ占用,而你又需要在這個端口上運行其他服務(wù),就可能會遇到端口沖突的問題。
三、為什么會出現(xiàn)端口沖突的問題
本質(zhì)因為多個進程同時需要使用一個端口,造成問題,具體原因要從端口的相關(guān)知識入手。
1、端口和監(jiān)聽
在計算機網(wǎng)絡(luò)中,端口是用于區(qū)分不同服務(wù)的邏輯概念。每個端口都有一個唯一的編號,范圍從0到65535。Web服務(wù)器通常需要監(jiān)聽一個端口,以便能夠接收和響應(yīng)來自客戶端(如瀏覽器)的請求。當你啟動一個Web服務(wù)器并指定一個端口時,服務(wù)器會嘗試綁定到該端口并開始監(jiān)聽。
2、端口沖突
如果一個端口已經(jīng)被另一個進程綁定和監(jiān)聽,那么其他進程就不能再綁定到同一個端口上。這是為了防止數(shù)據(jù)混亂和確保每個服務(wù)的獨立性。當你嘗試啟動的Web服務(wù)器發(fā)現(xiàn)指定的端口(在這個例子中是8082)已經(jīng)被占用時,它會無法啟動,并顯示錯誤信息。
3、操作系統(tǒng)的端口管理
操作系統(tǒng)負責(zé)管理所有網(wǎng)絡(luò)端口的使用情況。當一個進程請求綁定到某個端口時,操作系統(tǒng)會檢查該端口是否可用。如果端口已經(jīng)被占用,操作系統(tǒng)會拒絕新的綁定請求,并返回一個錯誤。
這就是為什么會出現(xiàn)該錯誤的原因了。
四、端口沖突常見的解決方案
1、查找并停止占用端口的進程
即本文所介紹的方法
2、配置應(yīng)用程序監(jiān)聽其他端口
比如SpringBoot中,會在application.properties文件中聲明
server.port=8082
又比如在Vue項目中會在vue.config.js文件中添加devServer屬性,port屬性的值就是端口(后面proxy里面的target不是,那個是后端接口應(yīng)用程序的端口)
devServer: { host: "0.0.0.0", port: 8083, // 后端接口設(shè)置,防止跨域 proxy: { "/api": { target: "http://127.0.0.1:8082/", ws: true, changeOrigin: true, pathRewrite: { "^/api": "", }, }, }, },
根據(jù)開發(fā)語言的特性修改即可。
3、使用端口轉(zhuǎn)發(fā)或代理
在某些情況下,你可以使用端口轉(zhuǎn)發(fā)或代理服務(wù)器來解決端口沖突問題。這樣,你可以讓代理服務(wù)器監(jiān)聽一個端口,然后將流量轉(zhuǎn)發(fā)到你的Web服務(wù)器監(jiān)聽的端口。
五、總結(jié)
本文解決了Idea啟動SpringBoot程序報錯:Veb server failed to start. Port 8082 was already in use的問題,并通過介紹端口的使用原理和操作系統(tǒng)的端口管理機制,可以更有效地解決端口沖突問題,并確保Web服務(wù)器能夠順利啟動和運行。
只有鍛煉思維才能可持續(xù)地解決問題,只有思維才是真正值得學(xué)習(xí)和分享的核心要素。如果這篇博客能給您帶來一點幫助,麻煩您點個贊支持一下,還可以收藏起來以備不時之需,有疑問和錯誤歡迎在評論區(qū)指出~
以上就是Idea啟動SpringBoot程序報錯:Veb server failed to start. Port 8082 was already in use;端口沖突的原理與解決方案的詳細內(nèi)容,更多關(guān)于Idea啟動SpringBoot 8082端口沖突的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringCloud使用Feign實現(xiàn)動態(tài)路由操作
這篇文章主要介紹了SpringCloud使用Feign實現(xiàn)動態(tài)路由操作,文章圍繞主題展開詳細的內(nèi)容介紹具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06Java中遞歸構(gòu)建樹形結(jié)構(gòu)的算法解讀
該文章介紹了如何使用Java遞歸算法構(gòu)建樹形結(jié)構(gòu),通過定義樹節(jié)點類,遍歷扁平數(shù)據(jù)列表,將節(jié)點加入對應(yīng)父節(jié)點的子節(jié)點列表中,實現(xiàn)從扁平數(shù)據(jù)到樹形結(jié)構(gòu)的轉(zhuǎn)換2025-03-03Java基礎(chǔ)開發(fā)之JDBC操作數(shù)據(jù)庫增刪改查,分頁查詢實例詳解
這篇文章主要介紹了Java基礎(chǔ)開發(fā)之JDBC操作數(shù)據(jù)庫增刪改查,分頁查詢實例詳解,需要的朋友可以參考下2020-02-02