Spring应用启动报错:ClassNotFoundException: DemoApplication 如何修复?
问题描述
我通过Spring Initializr创建了一个新的Spring应用。
我的build.gradle配置如下:
plugins { id 'java' id 'org.springframework.boot' version '2.7.5' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '19' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' } tasks.named('test') { useJUnitPlatform() }
DemoApplication.java文件内容:
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

点击运行按钮后程序报错:Caused by: java.lang.ClassNotFoundException: DemoApplication,请问该如何修复?
修复方案
- 修正项目目录结构:从截图可见,
DemoApplication.java直接放在src/main/java根目录下,但代码里声明的包是com.example.demo,路径和包名不匹配。需要在src/main/java下创建三级子目录com/example/demo,把DemoApplication.java移入该目录,保证文件路径与包名完全对应。 - 重新编译项目:执行Gradle命令清理旧产物并重新构建:
确认# Linux/Mac ./gradlew clean build # Windows gradlew clean buildbuild/classes/java/main/com/example/demo目录下生成了DemoApplication.class文件。 - 检查IDE运行配置:删除旧的运行配置,重新创建时指定完整类名
com.example.demo.DemoApplication作为主类,避免IDE找不到正确的类路径。 - 验证JDK版本:确保本地安装的JDK版本为19或兼容版本,匹配
build.gradle中sourceCompatibility = '19'的配置,防止版本不匹配导致编译失败。
内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ
相关产品推荐
相关产品推荐

