Java 11报错:java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
Java 11 删除了Java EE 模块,其中包括了
java.xml.bind (JAXB) - REMOVED
jaxb在Java各个版本支持如下:
- Java 8 - 可用
- Java 9 - 废弃
- Java 10 - 废弃
- Java 11 - 移除
解决方法
方法一:可以通过Java EE技术的替代版本来解决此问题。只需添加包含所需类的Maven依赖项。
<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-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
方法二:可以使用Jakarta EE 8中的Jakarta XML Binding来解决此问题,而不是使用旧的JAXB模块。
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.3</version>
</dependency>