如何获取 JDK 类/jar 的 NoClassDefFound?

How can one get a NoClassDefFound for a JDK class/jar?

提问人:Key Lay 提问时间:8/11/2023 最后编辑:Key Lay 更新时间:8/11/2023 访问量:26

问:

在更新依赖项的版本时,我开始得到一个.javax.net.ssl.SSLSession 是在 rt.jar 中找到的 JDK 类。更新依赖项如何导致找不到 JDK jar?java.lang.NoClassDefFoundError: javax/net/ssl/SSLSession

编辑:对我来说,答案是这样的dep更改会导致此结果。有一个基本图像更改,在询问时不知道是原因。

我把这个问题留出来,因为我认为回复和评论可能对来这里解决类似问题的人有所帮助。对于这样的人,我建议:仔细检查你的类路径并仔细检查你的 jdk 目录。

maven java-8 依赖项管理 noclassdeffounderror

评论

0赞 Key Lay 8/11/2023
在依赖项的更改中,没有添加相关的排除项,我的应用程序中唯一的传递依赖项更改是在 snappy-java 版本中。
1赞 kiwiron 8/11/2023
该错误意味着已找到该类,但在加载该类时出错。通常,静态初始化代码会失败。

答:

1赞 queeg 8/11/2023 #1

请注意,您不是在看 .ClassNotFoundException

ApiDoc 声明如下: 如果 Java 虚拟机或 ClassLoader 实例尝试加载类的定义(作为正常方法调用的一部分或使用新表达式创建新实例的一部分),并且找不到该类的定义,则抛出该类。 在编译当前正在执行的类时,搜索到的类定义已存在,但无法再找到该定义。NoClassDefFoundError