java.lang.NoClassDefFoundError:javax/xml/bind/DatatypeConverter错误出现原因以及解决方式

本文最后更新于:5 个月前

java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter错误出现原因以及解决方式

今天在使用JDK 17 环境下使用jjwt时候出现了这个错误,错误日志如下:

image-20221005193551610

故障原因:

JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。
java 9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包
而在 java 6/7 / 8 时关于这个API 都是捆绑在一起的

解决方案一:

降低JDK 版本到 JDK 8

解决方案二:(亲测可行)

手动加入这些依赖Jar包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>

java.lang.NoClassDefFoundError:javax/xml/bind/DatatypeConverter错误出现原因以及解决方式
https://changzer.gitee.io/2022/10/05/BUG修复——java.lang.NoClassDefFoundError javaxxmlbindDatatypeConverter错误出现原因以及解决方式/
作者
长泽
发布于
2022年10月5日
许可协议