真正解决方案:java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

2023-02-12,,,

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

故障原因:

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包

<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的相关教程结束。

《真正解决方案:java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter.doc》

下载本文的Word格式文档,以方便收藏与打印。