如何修复Spring Boot Gradle找不到或无法加载主类报错
Gradle构建Spring Boot触发
Could not find or load main class报错修复 核心问题直接看报错日志里的类全限定名:你配置里写的主类路径是com.notification.NotificationServiceApplication,但实际运行时查找的是com.notifcation.NotificationServiceApplication——包名notification少打了一个字母i,属于路径拼写不匹配问题,按下面步骤修复即可:
修复操作
- 核对主类实际路径
打开项目中的NotificationServiceApplication.java启动类,先看文件顶部的package声明,再确认文件存放的目录路径,必须和springBoot.mainClass配置的全限定名完全一致,差一个字符、大小写不对都会触发类找不到的错误。如果启动类实际包名确实少了i,要么改包名/文件位置,要么把build.gradle里的mainClass配置改成和实际路径完全匹配的值。 - 清理旧构建缓存
路径修正后,在项目根目录执行清理命令,删掉之前错误构建生成的缓存文件:# 本地安装了Gradle用这个 gradle clean # 用项目自带Gradle Wrapper的话,Linux/macOS执行 ./gradlew clean # Windows系统执行 gradlew.bat clean - 重新构建启动
清理完成后重新执行启动命令即可,如果是用IDEA等IDE运行,先点Gradle面板的刷新按钮同步下项目配置,避免IDE索引缓存残留导致的配置不生效问题。
拼写核对无误仍报错的补充检查项
- 确认启动类是public修饰,类上标有
@SpringBootApplication注解,且包含标准main方法:package com.notification; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class NotificationServiceApplication { public static void main(String[] args) { SpringApplication.run(NotificationServiceApplication.class, args); } } - 确认
src/main/java目录被标记为项目的源码根目录,否则Gradle编译时不会扫描这个目录下的Java文件,自然找不到编译后的主类。
内容的提问来源于stack exchange,提问作者SpicySandwich
相关产品推荐
相关产品推荐

