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

 更新时间:2024年10月04日 09:28:12   作者:watermelo37  
这篇文章主要介绍了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

启动项目发现端口被占用,问题是项目端口就是常用的开发端口(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、结束进程(两种方法)

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

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

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

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

taskkill /PID <PID> /F

3、重新启动项目

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

4、对于macOS和Linux系统

查找进程的指令为:

sudo lsof -i :8082

结束进程的指令为:

sudo kill -9 <PID>

其余步骤一致。

二、博主亲历

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

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

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

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

1、端口和监听

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

2、端口冲突

如果一个端口已经被另一个进程绑定和监听,那么其他进程就不能再绑定到同一个端口上。这是为了防止数据混乱和确保每个服务的独立性。当你尝试启动的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端口冲突的资料请关注脚本之家其它相关文章!

相关文章

  • Java中TreeSet、HashSet、Collection重写比较器的实现

    Java中TreeSet、HashSet、Collection重写比较器的实现

    比较器是一种可以对集合或数组中的元素按照自定义的方式进行排序的对象,本文主要介绍了Java中TreeSet、HashSet、Collection重写比较器的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-08-08
  • Java中的 VO,BO,DO 对象命名问题小结

    Java中的 VO,BO,DO 对象命名问题小结

    本文讲解VO,BO,DO 的作用以及如何使用,分析了如何消除三者之间重复的代码,同样结合现实生活中领导配秘书来类比讲解,对Java  VO  对象命名相关知识感兴趣的朋友一起看看吧
    2024-01-01
  • Spring中的@EnableScheduling定时任务注解

    Spring中的@EnableScheduling定时任务注解

    这篇文章主要介绍了Spring中的@EnableScheduling注解,@EnableScheduling是 Spring Framework 提供的一个注解,用于启用 Spring 的定时任务功能,通过使用这个注解,可以在 Spring 应用程序中创建定时任务,需要的朋友可以参考下
    2024-01-01
  • SpringBoot如何接收Post请求Body里面的参数

    SpringBoot如何接收Post请求Body里面的参数

    这篇文章主要介绍了SpringBoot如何接收Post请求Body里面的参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java中list.foreach()和list.stream().foreach()用法详解

    Java中list.foreach()和list.stream().foreach()用法详解

    在Java中List是一种常用的集合类,用于存储一组元素,List提供了多种遍历元素的方式,包括使用forEach()方法和使用Stream流的forEach()方法,这篇文章主要给大家介绍了关于Java中list.foreach()和list.stream().foreach()用法的相关资料,需要的朋友可以参考下
    2024-07-07
  • java拼接字符串时去掉最后一个多余逗号的方法

    java拼接字符串时去掉最后一个多余逗号的方法

    这篇文章主要介绍了java拼接字符串时去掉最后一个多余逗号的方法,实例分析了java操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 在IDEA中安装MyBatis Log Plugin插件,执行mybatis的sql语句(推荐)

    在IDEA中安装MyBatis Log Plugin插件,执行mybatis的sql语句(推荐)

    这篇文章主要介绍了在IDEA中安装MyBatis Log Plugin插件,执行mybatis的sql语句,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • spring boot装载自定义yml文件

    spring boot装载自定义yml文件

    这篇文章主要为大家详细介绍了spring boot装载自定义yml文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Springboot的maven间接依赖的实现

    Springboot的maven间接依赖的实现

    这篇文章主要介绍了Springboot的maven间接依赖的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Spring自定义注解的实现与使用方式

    Spring自定义注解的实现与使用方式

    注解是Java中用于类、方法、参数、包的装饰标志,本身不具备功能,但可定义参数,Java包含内建注解和元注解,如@Target、@Retention等,描述注解的使用范围和生命周期,Spring的AOP(面向切面编程)可以结合注解实现功能,如权限控制和日志记录
    2024-09-09

最新评论