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