启动的时候报错: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 字节码操作库的。

常见原因

  1. 依赖未引入
    没有在 pom.xml(Maven) 或 build.gradle(Gradle) 中引入 javassist 依赖。

  2. 依赖冲突或被排除
    某些情况下,你引入了一个库 A,它依赖 javassist,但在传递依赖时被排除了或者冲突导致版本缺失。

  3. 打包问题
    如果你用的是 fat jar(比如用 spring-boot-maven-pluginshade 打包),可能因为配置问题没将 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 了。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐