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

Spring Boot嵌入式Tomcat应用运行报错:主类无法找到或加载

解决Spring Boot Kotlin应用bootJar打包后主类找不到问题

问题核心原因

Kotlin的顶层main函数会被编译成带Kt后缀的类(比如你的代码里生成的是DemoApplicationKt),而你当前配置的主类是DemoApplication——这个类本身没有main方法,实际的入口方法在DemoApplicationKt中。

具体解决步骤

1. 修正Spring Boot主类配置

修改build.gradle.kts中的springBoot配置,将主类指向带Kt后缀的类:

springBoot {
    mainClass.set("com.planes.planesserver.DemoApplicationKt")
}

2. 移除自定义的Jar任务配置

你自定义的tasks.withType<Jar>会干扰Spring Boot的bootJar任务生成正确的Manifest信息,直接删除这段配置:

// 删除以下内容
tasks.withType<Jar> {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE

    manifest {
         attributes["Main-Class"] = "com.planes.planesserver.DemoApplication"
    }
}

bootJar任务会自动处理主类和Manifest,无需额外配置。

3. 验证与测试

  • 先执行本地运行命令测试:./gradlew bootRun,确认应用能正常启动
  • 重新打包:./gradlew bootJar
  • 运行Jar包:java -jar build/libs/planesserver-0.0.1-SNAPSHOT.war(注意你的包是war类型,文件名对应配置的group和version)

额外说明

如果你的应用以war包部署,也可以直接用bootWar任务打包,同样确保主类配置正确即可。

内容的提问来源于stack exchange,提问作者Cristi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 18:27:20