Spring Boot启动报Port already in use怎么办?

2026-05-10百科知识287193

端口8080被占用导致Spring Boot启动失败,可选三种独立方案:一、用netstat/lsof查PID后taskkill/kill终止进程;二、在application.yml或properties中修改server.port;三、通过VM参数、Maven或jar命令动态指定端口。

如果您尝试启动 Spring Boot 项目,但控制台报错 Web server failed to start. Port 8080 was already in use,则说明目标端口正被其他进程占用。以下是三种互不依赖、可独立生效的解决方法:

一、查找并终止占用端口的进程

该方法直接释放被占用的端口,适用于明确需复用默认端口(如 8080)且可安全终止冲突进程的场景。原理是定位监听该端口的操作系统级进程,并强制中止其运行。

1、在 Windows 系统中,以管理员身份打开命令提示符(CMD)或 PowerShell。

2、执行命令:netstat -ano | findstr :8080,查找输出行末尾的 PID 数字(例如 12345)。

3、执行命令:taskkill /F /PID 12345(将 12345 替换为实际查得的 PID)。

4、在 macOS 或 Linux 系统中,打开终端,执行:sudo lsof -i :8080 获取 PID,再执行:sudo kill -9 [PID](将 [PID] 替换为实际值)。

二、修改 Spring Boot 应用监听端口

该方法绕过端口冲突,无需干预其他进程,适用于无法确定占用源、或占用进程不可终止(如系统服务)的情形。原理是通过配置覆盖默认端口绑定行为。

1、打开项目中的 application.yml 文件,在 server: 节点下添加:port: 8014(可替换为任意未被占用的可用端口,如 8081、9090)。

Faceswap

免费开源的AI换脸工具

下载

2、若使用 application.properties,则添加一行:server.port=8014

3、保存文件后重新启动应用,访问地址需同步更新为 http://localhost:8014

三、通过启动参数动态指定端口

该方法实现端口配置与代码/配置文件解耦,适合多环境快速切换或临时调试。原理是在 JVM 启动时通过命令行参数注入 server.port 属性,优先级高于配置文件。

1、若通过 IDE(如 IntelliJ IDEA)启动,在运行配置的 VM options 中添加:-Dserver.port=8014

2、若通过 Maven 命令启动,执行:mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=8014"

3、若通过 jar 包启动,执行:java -Dserver.port=8014 -jar your-app.jar

《Spring Boot启动报Port already in use怎么办?.doc》

下载本文的Word格式文档,以方便收藏与打印。