Spring Boot 3.3.2 LTS升级后启动报错:java.lang.NoClassDefFoundError
问题解决:Spring Boot 3.3.2 LTS启动时Logback类缺失错误
核心原因
ch.qos.logback.core.util.StatusPrinter2是Logback 1.4.x版本新增的类,Spring Boot 3.3.2 LTS默认依赖的Logback版本为1.4.12。出现该错误的原因是项目中存在版本不兼容的Logback依赖——比如手动指定了低于1.4.x的版本,或是其他依赖引入了旧版Logback。
解决步骤
1. 移除手动指定的Logback版本
如果你的pom.xml(Maven)或build.gradle(Gradle)中手动声明了Logback的版本,直接删除该声明,让Spring Boot的依赖管理自动控制版本:
Maven示例:
删除类似以下的配置:
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.2.x</version> <!-- 旧版本,需移除 --> </dependency>
Gradle示例:
删除类似以下的配置:
implementation 'ch.qos.logback:logback-core:1.2.x' // 旧版本,需移除
2. 排查并解决依赖冲突
若未手动指定版本,可能是其他依赖引入了旧版Logback,需排查依赖树:
Maven:
执行命令查看Logback相关依赖:
mvn dependency:tree -Dincludes=ch.qos.logback
找到引入旧版Logback的依赖,在该依赖中排除旧版组件:
<dependency> <groupId>xxx</groupId> <artifactId>xxx</artifactId> <exclusions> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> </exclusion> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency>
Gradle:
执行命令查看Logback相关依赖:
./gradlew dependencies --configuration runtimeClasspath | grep logback
找到引入旧版Logback的依赖,添加排除规则:
implementation('xxx:xxx') { exclude group: 'ch.qos.logback', module: 'logback-core' exclude group: 'ch.qos.logback', module: 'logback-classic' }
3. 清理并重新构建项目
执行以下命令清理缓存并重新构建:
Maven:
mvn clean install
Gradle:
./gradlew clean build
重新启动应用后,问题即可解决。
内容的提问来源于stack exchange,提问作者ALPHA
相关产品推荐
相关产品推荐

