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

Spring Boot Gradle项目打包后无法找到主类com.Application求助

Spring Boot Gradle Jar包启动找不到主类问题解决

核心问题定位

本地通过Gradle运行正常,但生成的Jar包(不管是本地java -jar执行还是部署到Heroku/GCP)启动时报错Error: Could not find or load main class com.Application,本质是Jar包未正确包含主类信息,或者主类配置存在错误。

排查与修复步骤

1. 检查build.gradle配置

确保Spring Boot插件正确引入,并且主类配置无误。示例正确配置片段:

plugins {
    id 'org.springframework.boot' version '3.2.0'
    id 'io.spring.dependency-management' version '1.1.4'
    id 'java'
}

// 明确指定主类,避免插件自动识别失败
springBoot {
    mainClass = 'com.Application'
}

如果使用新版Spring Boot插件(2.4+),也可以通过application.properties配置:

spring.main.application-class=com.Application

2. 验证主类本身

  • 确认com.Application类存在,包路径严格匹配(比如不要写成com.example.Application)
  • 主类必须包含@SpringBootApplication注解和标准main方法:
package com;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

3. 重新构建并检查Jar包内容

  • 执行清理构建命令:./gradlew clean bootJar(Linux/Mac)或gradlew clean bootJar(Windows)
  • 解压build/libs下的Jar包,确认BOOT-INF/classes/com/Application.class存在
  • 查看META-INF/MANIFEST.MF文件,确保包含以下条目:

Main-Class: org.springframework.boot.loader.launch.JarLauncher
Start-Class: com.Application
如果Start-Class不是com.Application,说明主类配置未生效。

4. 云环境部署额外检查

  • Heroku/GCP构建时,确保执行了bootJar任务(默认Gradle构建会自动执行,但自定义脚本需确认)
  • 启动命令要指向正确的Jar包路径,比如java -jar build/libs/[你的项目名].jar

内容的提问来源于stack exchange,提问作者Daniel A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:05:52