You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot应用启动失败:端口8080被占用问题求助

解决Spring Boot端口占用启动失败问题

1. 修正命令行端口指定方式

你之前的命令未完成参数输入,正确的端口指定格式如下:

java -jar target/accessing-data-mysql-initial-0.0.1-SNAPSHOT.jar --server.port=8181

在=后直接补充目标端口号,启动后查看控制台输出的Tomcat started on port(s): 8181 (http)确认端口是否生效。

2. 验证application.properties配置有效性

确保配置文件无拼写错误,正确的端口配置应为:

server.port=8181

同时确认配置文件放置在src/main/resources目录下——若路径错误,配置不会被加载。如果是多环境项目,检查是否激活了其他环境配置(如prod/test),避免默认配置被覆盖。

3. 排查目标端口是否被占用

即使杀死8080端口进程,你指定的新端口可能也被其他进程占用,用以下命令排查:

  • Windows系统:
netstat -ano | findstr :8181

找到对应PID后,通过任务管理器结束进程。

  • Linux/macOS系统:
lsof -i :8181
# 执行杀死进程命令
kill -9 <PID>

4. 检查代码中是否存在硬编码端口

部分Spring Boot应用会通过Java代码硬编码指定端口,覆盖配置文件和命令行参数,检查主启动类或配置类:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(Application.class);
        // 此类硬编码会覆盖外部配置
        app.setDefaultProperties(Collections.singletonMap("server.port", "8080"));
        app.run(args);
    }
}

若存在此类代码,删除或修改为动态读取配置。

5. 清理缓存并重新构建项目

IDE缓存或构建产物异常可能导致配置不生效,执行以下操作:

  • 清理并重新构建Maven项目:
mvn clean install
  • 重启IDE并清除缓存(如IntelliJ IDEA的File -> Invalidate Caches...选项)

6. 检查嵌入式服务器的特殊配置

如果项目引入了非Tomcat的嵌入式服务器(如Jetty、Undertow),需对应调整端口配置:

  • Undertow配置示例:
server.undertow.port=8181

查看pom.xml中的服务器依赖,确保配置与依赖匹配。


内容的提问来源于stack exchange,提问作者Furkan Gülenç

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 07:24:18