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

IntelliJ中Kotlin+Spring Boot Gradle项目主类加载失败报错问题

解决 "Could not find or load main class com.example.demo.DemoApplicationKt" 报错

我之前用Kotlin+Spring Boot+Gradle组合创建项目时,也碰到过一模一样的问题,给你几个亲测有效的解决步骤:

1. 先搞定Gradle项目同步

IDEA导入项目后,经常会出现Gradle配置或依赖没同步完全的情况:

  • 点击IDEA右侧Gradle面板里的刷新按钮(圆形箭头图标),等待同步完成
  • 嫌UI操作慢的话,直接在终端执行命令:Mac/Linux用./gradlew clean build --refresh-dependencies,Windows用gradlew.bat clean build --refresh-dependencies,强制刷新依赖并重新构建

2. 检查并修正IDEA运行配置

有时候IDEA自动生成的运行配置会抽风:

  • 按下Alt+Shift+F10,选中当前的运行配置,点击旁边的铅笔图标进入编辑页面
  • 在Main class输入框里,手动填入com.example.demo.DemoApplicationKt(Kotlin顶层main函数会被编译成带Kt后缀的类,这个是关键)
  • 确认Use classpath of module选择的是你的主模块(一般是demo.main这类命名),保存后再尝试运行

3. 清理IDEA缓存并重启

IDEA的本地缓存偶尔会导致类识别异常,这招屡试不爽:

  • 点击顶部菜单File -> Invalidate Caches...,选择Invalidate and Restart,等待IDEA重启并重新索引项目
  • 这个操作会清空本地缓存,重新加载项目结构,很多奇怪的“类找不到”问题都能解决

4. 检查Gradle配置文件(build.gradle.kts)

确保你的配置里正确引入了必需的插件,比如:

plugins {
    id("org.springframework.boot") version "3.x.x"
    id("io.spring.dependency-management") version "1.x.x"
    kotlin("jvm") version "1.x.x"
    kotlin("plugin.spring") version "1.x.x"
}

group = "com.example"
version = "0.0.1-SNAPSHOT"

java {
    sourceCompatibility = JavaVersion.VERSION_17 // 改成你实际用的Java版本
}

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<Test> {
    useJUnitPlatform()
}

如果少了kotlin("plugin.spring")插件,可能会影响Kotlin主类的识别,加上后重新同步Gradle就行

5. 确认主类代码没问题

你的主类代码是完全正确的:

package com.example.demo
import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication

@SpringBootApplication
class DemoApplication

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

Kotlin的顶层main函数编译后会生成DemoApplicationKt类,这个类名是正确的,不用修改代码,只要确保IDEA能识别到编译后的类即可

按上面的步骤一步步试,一般前三个步骤就能解决问题了,如果还是不行,再检查Gradle配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:39:27