解决nested exception is java.lang.NoClassDefFoundError: javassist/ClassPool报错
启动的时候报错:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. [ERROR][2025-06-17 07:45:25.096Z][][main][org.springframework.boot.SpringApplication] Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cn.com.....': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javassist/ClassPool
这个报错信息的关键在于最后这一行:
nested exception is java.lang.NoClassDefFoundError: javassist/ClassPool
这个错误的全称是:
NoClassDefFoundError: javassist/ClassPool
意思是:程序在运行时 找不到 javassist.ClassPool 这个类。这个类是属于 javassist 这个 Java 字节码操作库的。
常见原因
-
依赖未引入
没有在pom.xml(Maven) 或build.gradle(Gradle) 中引入javassist依赖。 -
依赖冲突或被排除
某些情况下,你引入了一个库 A,它依赖javassist,但在传递依赖时被排除了或者冲突导致版本缺失。 -
打包问题
如果你用的是 fat jar(比如用spring-boot-maven-plugin或shade打包),可能因为配置问题没将javassist打进包里。
解决办法
1. 显式添加 javassist 依赖
如果你是用 Maven 构建,在 pom.xml 中添加:
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.29.2-GA</version> <!-- 可根据需要修改为较新的版本 -->
</dependency>
Gradle 则添加:
implementation 'org.javassist:javassist:3.29.2-GA'
2. 排查依赖冲突
用以下命令检查 javassist 是否在依赖树中:
mvn dependency:tree | grep javassist
看看是否存在多个版本、冲突,或被 excluded 了。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)