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

Kotlin Gradle报错:找不到或无法加载主类问题求助

解决Spring Boot Kotlin项目可执行Jar运行时"找不到主类"的问题

嘿,我来帮你搞定这个问题!你遇到的Could not find or load main class报错,大概率是Gradle配置没跟上Spring Boot和Kotlin的打包要求,我给你一步步梳理解决方案:

1. 补全Gradle构建脚本的核心依赖和插件

你的现有脚本里buildscript的依赖写了一半,而且缺少关键插件的应用。先把build.gradle补全成这样(关键修改点已标注):

buildscript {
    ext.kotlin_version = '1.1.3'
    ext.spring_boot_version = '1.5.4.RELEASE'
    repositories {
        jcenter()
        mavenCentral() // 新增:Spring Boot插件依赖存放在这个仓库
    }
    dependencies {
        // 补全Kotlin Gradle插件
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // 新增Spring Boot Gradle插件,这是打包可执行Jar的核心
        classpath "org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version"
    }
}

// 应用三个关键插件
apply plugin: 'kotlin'
apply plugin: 'org.springframework.boot' // 核心:处理Spring Boot打包逻辑
apply plugin: 'kotlin-spring' // 可选但推荐:自动把Kotlin类改成open(Spring需要代理类,Kotlin默认类是final的)

repositories {
    jcenter()
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
    compile "org.springframework.boot:spring-boot-starter-web"
    // 你自己添加的其他依赖放在这里
}

// 如果你发现插件没自动识别主类,手动指定(替换成你的主类全限定名)
// mainClassName = 'com.yourpackage.YourSpringBootApplication'

2. 确认你的主类配置正确

确保你的Spring Boot启动类满足这两个条件:

  • 带有@SpringBootApplication注解
  • 有main函数作为入口(或者用Spring Boot的run方法)

示例主类代码:

package com.example.yourproject

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

@SpringBootApplication
// 如果没加kotlin-spring插件,这里必须加open关键字,否则Spring无法生成代理
open class YourSpringBootApplication

fun main(args: Array<String>) {
    SpringApplication.run(YourSpringBootApplication::class.java, *args)
}

3. 用正确的命令构建和运行

别用普通的./gradlew jar命令!Spring Boot插件提供了专门的bootJar任务来构建可执行Jar:

# 构建可执行Jar
./gradlew bootJar

# 运行Jar包(替换成你实际生成的Jar文件名)
java -jar build/libs/your-project-name-0.0.1-SNAPSHOT.jar

可能的其他排查点

  • 检查主类是否在src/main/kotlin目录下,包路径和代码里的package声明一致
  • 如果添加了其他依赖,确保没有版本冲突(比如和Spring Boot 1.5.4不兼容的依赖)
  • 如果你用的是Windows系统,把命令里的./gradlew换成gradlew.bat

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:10:30