[报错] SpringBoot 启动报错:Port 8080 was already in use 完美解决(Windows/Mac/Linux)

[报错] SpringBoot 启动报错:Port 8080 was already in use 完美解决(Windows/Mac/Linux)
摘要: 在启动 SpringBoot 项目时,控制台报错 Web server failed to start. Port 8080 was already in use.。这通常是因为上一次项目没有正常关闭,或者 8080 端口被其他软件(如 Oracle, Jenkins 等)占用了。本文提供 3 种解决方法,适用于 Windows、Mac 和 Linux。

1. 报错现象

当你点击运行 SpringBoot 的启动类 Application.java 时,控制台出现如下错误堆栈:

code Java

downloadcontent_copy

expand_less

*************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port. 

2. 解决方法一:找出并杀死占用端口的进程(推荐)

这是最彻底的解决方法。我们需要找到是哪个程序占用了 8080 端口,然后干掉它。

🟢 Windows 系统解决方案

第一步:打开 CMD 窗口
按下 Win + R,输入 cmd,回车。

第二步:查找占用端口的 PID
输入以下命令:

code Bash

downloadcontent_copy

expand_less

netstat -ano | findstr 8080 

你会看到类似这样的输出:

code Code

downloadcontent_copy

expand_less

TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 12345 TCP [::]:8080 [::]:0 LISTENING 12345 

注意最右边的数字 12345,这就是占用端口的 进程 ID (PID)

第三步:杀死进程
输入以下命令(将 12345 换成你刚才查到的实际 PID):

code Bash

downloadcontent_copy

expand_less

taskkill /F /PID 12345 

提示 成功: 已终止 PID 为 12345 的进程 后,重新启动你的 SpringBoot 项目即可!


🟢 Mac / Linux 系统解决方案

第一步:打开终端 Terminal

第二步:查找并杀死进程
有两种方式:

方式 B(一行命令搞定):code Bashdownloadcontent_copyexpand_less

# 直接根据端口号杀进程 fuser -k 8080/tcp 

方式 A(分步执行):code Bashdownloadcontent_copyexpand_less

# 1. 查找 PID lsof -i :8080 # 输出示例: # COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME # java 9876 root 45u IPv6 0x12345678 0t0 TCP *:http-alt (LISTEN) # 2. 杀死进程 (将 9876 换成你的 PID) kill -9 9876 

3. 解决方法二:修改 SpringBoot 项目端口

如果你不想杀进程(比如 8080 被其他重要服务占用了),可以修改当前项目的启动端口。

情况 A:使用的是 application.properties

在 src/main/resources/application.properties 文件中添加:

code Properties

downloadcontent_copy

expand_less

# 将端口修改为 8081 server.port=8081 

情况 B:使用的是 application.yml

在 src/main/resources/application.yml 文件中修改:

code Yaml

downloadcontent_copy

expand_less

server: port: 8081 

4. 解决方法三:临时救急(启动参数覆盖)

如果你只是想临时跑一下测试,不想改配置文件,也不想查端口,可以在启动配置(Program arguments)中添加参数:

code Bash

downloadcontent_copy

expand_less

--server.port=8082 

或者在打包运行 jar 包时:

code Bash

downloadcontent_copy

expand_less

java -jar demo.jar --server.port=8082 

出现 Port 8080 was already in use 是 Java 开发中最常见的问题之一。

  • 最推荐: 使用 方法一(杀死僵尸进程),保持代码配置的整洁。
  • 最快: 使用 方法二(改端口),如果你确实需要同时运行多个服务。
如果这篇文章帮到了你,请点赞 + 收藏!有问题欢迎在评论区留言。

Read more

Java 高级工程师高频核心面试题(完整版,含标准答案 + 深度解析)

适合 Java 中高级 / 资深开发面试,全是高频必考 + 深度深挖题,涵盖 JVM、并发编程、集合源码、分布式、Spring 全家桶、MySQL 优化、设计模式等核心模块,答案都是面试标准答案,可直接背诵、口述,挖的深度足够应对大厂三面 / 技术终面。 一、JVM 虚拟机(重中之重,必问,分值最高) 1. JVM 内存结构(运行时数据区),JDK8 做了什么重大改动? 答:JVM 运行时数据区包含 方法区、堆、虚拟机栈、本地方法栈、程序计数器 5 个区域,线程私有:虚拟机栈、本地方法栈、程序计数器;线程共享:堆、方法区。

By Ne0inhk

Java小白面试实录:从Spring Boot到微服务架构的深度解析

Java小白面试实录:从Spring Boot到微服务架构的深度解析 场景描述 在某互联网大厂的面试场景中,面试官针对一位求职Java开发岗位的小白程序员“超好吃”,展开了技术深度问答。提问围绕Spring Boot、消息队列和微服务架构展开,以电商场景为背景进行探讨。 第一轮提问:Spring Boot基础与应用 面试官: 1. 请解释一下Spring Boot的核心特性,以及它和传统的Spring Framework有什么区别? 2. 在Spring Boot中,如何实现应用的配置管理?你对application.properties和application.yml有什么理解? 3. 电商系统中,如果我们需要构建一个简单的商品展示服务,你会如何设计它的Spring Boot结构? 超好吃: 1. Spring Boot的核心特性包括: * 自动配置:通过自动化配置减少了繁琐的xml配置。 * 嵌入式服务器:内置Tomcat、Jetty等,方便快速启动服务。 * Starter模块:提供开箱即用的依赖组合。 * 监控和指标:通过

By Ne0inhk
Java 网络编程核心:BIO、NIO、AIO IO 模型深度解析与实战

Java 网络编程核心:BIO、NIO、AIO IO 模型深度解析与实战

Java 网络编程核心:BIO、NIO、AIO IO 模型深度解析与实战 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页@怒放吧德德To记录领地@一个有梦有戏的人 🌝分享学习心得,欢迎指正,大家一起学习成长! 转发请携带作者信息@怒放吧德德(掘金) @一个有梦有戏的人(ZEEKLOG) 前言 在分布式系统与高并发场景成为主流的今天,Java 网络编程作为后端开发的核心基础,其 IO 模型的选择直接决定了系统的性能上限。从早期的 BIO(同步阻塞 IO)到为解决高并发而生的 NIO(同步非阻塞 IO),再到更贴合异步编程理念的 AIO(异步非阻塞 IO),三种 IO 模型贯穿了 Java 网络编程的发展历程,也对应着不同的业务场景需求。 对于初学者而言,IO

By Ne0inhk
Java 大视界 -- 基于 Java+Kafka 构建高可用消息队列集群:实战部署与性能调优(442)

Java 大视界 -- 基于 Java+Kafka 构建高可用消息队列集群:实战部署与性能调优(442)

Java 大视界 -- 基于 Java+Kafka 构建高可用消息队列集群:实战部署与性能调优(442) * 引言: * 正文: * 一、 Kafka 高可用集群核心认知:先懂原理,再谈部署 * 1.1 Kafka 高可用核心原理 * 1.1.1 核心组件协同逻辑 * 1.1.2 高可用核心:多副本与 Leader 选举机制 * 1.2 Kafka 高可用集群架构设计要点 * 1.3 技术栈选型:Java+Kafka 核心版本适配 * 二、 实战部署:Java+Kafka 高可用集群搭建 * 2.1 部署前准备:环境初始化

By Ne0inhk