Spring应用启动报错:Could not find or load main class 求助
解决Spring Boot项目无法找到主类的问题
报错信息
Error: Could not find or load main class com.MusicJournal.MusicJournal.MusicJournalApplication Caused by: java.lang.ClassNotFoundException: com.MusicJournal.MusicJournal.MusicJournalApplication
主类代码
package com.MusicJournal.MusicJournal; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MusicJournalApplication { public static void main(String[] args) { SpringApplication.run(MusicJournalApplication.class, args); } }
修复步骤
核对目录结构与包路径
确认src/main/java下的目录层级严格对应包名:src/main/java/com/MusicJournal/MusicJournal,且MusicJournalApplication.java文件确实在该目录下。目录结构与包名不匹配会直接导致编译后类路径找不到主类。彻底清理并重构项目
手动删除项目根目录下的target(Maven)或build(Gradle)文件夹,清除旧编译残留;然后执行对应构建命令:- Maven项目:
mvn clean install - Gradle项目:
./gradlew clean build
- Maven项目:
检查IDE运行配置
在IntelliJ IDEA中打开「Run/Debug Configurations」:- 确认「Main class」字段准确填写为
com.MusicJournal.MusicJournal.MusicJournalApplication,无拼写错误; - 确认「Use classpath of module」选择了当前项目的正确模块,避免因模块选错导致类路径异常。
- 确认「Main class」字段准确填写为
校验构建插件配置
检查项目的构建配置文件,确保Spring Boot插件正确配置:- Maven(
pom.xml):<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> - Gradle(
build.gradle):plugins { id 'org.springframework.boot' version 'x.x.x' id 'io.spring.dependency-management' version 'x.x.x' id 'java' }
插件配置错误会导致编译产物中主类信息缺失或类路径配置异常。
- Maven(
确认JDK版本兼容性
检查项目使用的JDK版本与Spring Boot版本是否匹配:Spring Boot 3.x要求JDK 17+,Spring Boot 2.x支持JDK 8-17。版本不兼容会导致编译后的类无法被正常加载。
内容的提问来源于stack exchange,提问作者dddryinside
相关产品推荐
相关产品推荐

