运行Spring Boot应用JAR文件时遇java.lang.ClassNotFoundException错误
解决Spring Boot Gradle构建JAR运行时ClassNotFoundException问题
确保build.gradle正确配置Spring Boot插件
必须包含Spring Boot插件和依赖管理插件,同时指定正确的主类(如果插件未自动识别):plugins { id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.4' id 'java' } springBoot { mainClass = 'com.yourpackage.YourMainApplicationClass' }构建可执行JAR而非普通JAR
执行gradle bootJar生成包含所有依赖的可执行JAR,而不是gradle jar生成的仅含自身代码的普通JAR。gradle build默认会触发bootJar,但如果配置异常,建议直接执行bootJar任务。验证JAR内容完整性
用命令jar tf build/libs/your-app-name.jar查看JAR内部结构:- 确认
BOOT-INF/classes下存在你的主类字节码文件 - 确认
BOOT-INF/lib下包含所有项目依赖的JAR文件
- 确认
核对主类路径与类名
错误提示中的类名必须和项目中@SpringBootApplication注解的类完全一致,检查包路径、类名拼写是否有误。清理缓存后重新构建
执行gradle clean build清除旧构建产物,避免缓存导致的异常。检查依赖配置
确认build.gradle的dependencies块中包含必要的Spring Boot starter依赖,比如implementation 'org.springframework.boot:spring-boot-starter-web',没有错误的依赖坐标或不必要的依赖排除。
内容的提问来源于stack exchange,提问作者SIM777
相关产品推荐
相关产品推荐

