Spring Boot 应用打包为 JAR 后立即退出的常见原因与解决方案

2026-02-01 00:00:00 作者:花韻仙語

spring boot 应用通过 java -jar 运行时瞬间启动又关闭,通常是因为 jar 包未正确打包为可执行 fat jar,缺少 spring boot maven 插件的 repackage 目标或构建方式错误。

当你在 VS Code 中使用 Java Project Manager 直接“构建 JAR”时,它往往只是执行了 Maven 的默认 mvn compile 或 mvn jar:jar,并未触发 spring-boot-maven-plugin 的 repackage 目标——而这一步才是生成真正可执行、内嵌 Tomcat(或 Netty)并包含所有依赖的 Fat Jar 的关键。

✅ 正确做法是:始终使用 Maven 生命周期命令显式构建可执行 JAR:

mvn clean package

该命令会自动执行:

  • 编译源码(compile)
  • 运行测试(test,除非跳过)
  • 打包为普通 JAR(jar:jar)
  • 最后由 spring-boot-maven-plugin 的 repackage 目标将原始 JAR 重构成可执行 Fat Jar(默认输出为 target/interconnecting-flights-0.0.1-SNAPSHOT.jar)

⚠️ 注意事项:

  • 确保 pom.xml 中已声明 spring-boot-maven-plugin(你已正确配置,无需额外改动);
  • 不要手动使用 jar cf 或 IDE 的“Export as JAR”功能,它们无法处理 Spr

    ing Boot 的类加载器结构和启动引导逻辑;
  • 验证生成的 JAR 是否为可执行:运行 java -Djarmode=help -jar your-app.jar,若显示 jarmode 支持则说明是合法 Spring Boot Fat Jar;
  • 若仍异常,可添加 JVM 参数查看详细日志:java -Dlogging.level.org.springframework=DEBUG -jar your-app.jar,重点关注是否因端口占用、配置缺失或 Bean 初始化失败导致上下文提前关闭。

? 补充建议:在 pom.xml 的 中显式绑定 repackage(虽非必需,但更清晰):


    org.springframework.boot
    spring-boot-maven-plugin
    
        
            
                repackage
            
        
    

总结:VS Code 的 Java Project Manager 并非 Maven 构建工具替代品,其“构建 JAR”功能不具备 Spring Boot 特定的打包语义。坚持使用 mvn clean package 是保证生成标准可执行 JAR 的唯一可靠方式。

猜你喜欢

联络方式:

400 9058 355

邮箱:8955556@qq.com

Q Q:8955556

微信二维码
在线咨询 拨打电话

电话

400 9058 355

微信二维码

微信二维码