开发者

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
  • 一、解决办法
    • 1、查找占用端口的进程
    • 2、结束进程(两种方法)
      • ①在任务管理器中终结指定pid的进程
      • ②在命令提示符中结束进程
    • 3、重新启动项目
      • 4、对于MACOS和linux系统
      • 二、博主亲历
        • 三、为什么会出现端口冲突的问题
          • 1、端口和监听
            • 2、端口冲突
              • 3、操作系统的端口管理
              • 四、端口冲突常见的解决方案
                • 1、查找并停止占用端口的进程
                  • 2、配置应用程序监听其他端口
                    • 3、使用端口转发或代理
                    • 五、总结

                      Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use

                      启动项目发现端口被占用,问题是项目端口就是常用的开发端口(8080系列...)

                      报错信息为:

                      Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use;端口冲突的原理与解决方案

                      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 anoandroidther port.

                      一、解决办法

                      1、查找占用端口的进程

                      • 以管理员身份打开命令提示符。
                      • 输入以下命令并按回车:
                      netstat -aon | findstr :8082

                      记下输出中的PID(进程ID)

                      Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use;端口冲突的原理与解决方案

                      2、结束进程(两种方法)

                      ①在任务管理器中终结指定pid的进程

                      在任务管理器中,转到“进程”标签,找到你记下的PID对应的进程,右键点击它,然后选择“结束任务”。

                      Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use;端口冲突的原理与解决方案

                      ②在命令提示符中结束进程

                      将<PID>替换为实际的进程ID。

                      taskkill /PID <PID> /F

                      3、重新启动项目

                      终结占用端口的进程后,重新启动项目即可。

                      4、对于macOS和Linux系统

                      查找进程的指令为:

                      sudo lsof -i :8082

                      结束进程的指令为:

                      sudo kill -9 <PID>

                      其余步骤一致。

                      二、博主亲历

                      我出现8082端口占用的时候发现是QQ占用了该端口,直接把QQ退出之后重新启动项目后解决。然后再登www.devze.com录QQ也没有冲突,问题解决。

                              QQ在运行时需要监听特定的端口以进行网络通信。可能是因为QQ的某个服务或功能需要在这个端口上进行数据传输或接收。当QQ启动时,它会尝试绑定到这个端口,如果该端口未被其他服务使用,QQ就会成功占用该端口进行通信。如果端口8082被QQ占用,而你又需要在这个端口上运行其他服务,就可能会遇到端口冲突的问题。

                      三、为什么会出现端口冲突的问题

                      本质因为多个进程同时需要使用一个端口,造成问题,具体原javascript因要从端口的相关知识入手。

                      1、端口和监听

                      在计算机网络中,端口是用于区分不同服务的逻辑概念。每个端口都有一个唯一的编号,范围从0到65535。Web服务器通常需要监听一个端口,以便能够接收和响应来自客户端(如浏览器)的请求。当你启动一个Web服务器并指定一个端口时,服务器会尝试绑定到该端口并开始监听。

                      2、端口冲突

                      如果一个端口已经被另一个进程绑定和监听,那么其他进javascript程就不能再绑定到同一个端口上。这是为了防止数据混乱和确保每个服务的独立性。当你尝试启动的Web服务器发现指定的端口(在这个例子中是8082)已经被占用时,它会无法启动,并显示错误信息。

                      3、操作系统的端口管理

                      操作系统负责管理所有网络端口的使用情况。当一个进程请求绑定到某个端口时,操作系编程统会检查该端口是否可用。如果端口已经被占用,操作系统会拒绝新的绑定请求,并返回一个错误。

                      这就是为什么会出现该错误的原因了。

                      四、端口冲突常见的解决方案

                      1、查找并停止占用端口的进程

                      即本文所介绍的方法

                      2、配置应用程序监听其他端口

                      比如SpringBoot中,会在application.properties文件中声明

                      server.port=8082

                      又比如在vue项目中会在vue.config.js文件中添加devServer属性,port属性的值就是端口(后面proxy里面的target不是,那个是后端接口应用程序的端口)

                          devServer: {
                              host: "0.0.0.0",
                              port: 8083,
                              // 后端接口设置,防止跨域
                              proxy: {
                                  "/api": {
                                      target: "http://127.0.0.1:8082/",
                                      ws: true,
                                      changeOrigin: true,
                                      pathRewrite: {
                                          "^/api": "",
                                      },
                                  },
                              },
                          },

                      根据开发语言的特性修改即可。 

                      3、使用端口转发或代理

                      在某些情况下,你可以使用端口转发或代理服务器来解决端口冲突问题。这样,你可以让代理服务器监听一个端口,然后将流量转发到你的Web服务器监听的端口。

                      五、总结

                      本文解决了Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use的问题,并通过介绍端口的使用原理和操作系统的端口管理机制,可以更有效地解决端口冲突问题,并确保Web服务器能够顺利启动和运行。

                      只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

                      以上就是Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use;端口冲突的原理与解决方案的详细内容,更多关于Idea启动SpringBoot 8082端口冲突的资料请关注编程客栈(www.devze.com)其它相关文章!

                      0

                      上一篇:

                      下一篇:

                      精彩评论

                      暂无评论...
                      验证码 换一张
                      取 消

                      最新开发

                      开发排行榜