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>

版权声明:著作权归作者所有。

相关推荐

关于Java异常

在这篇博文里,我们思考下检查异常 (checked exception)和非检查异常(unchecked exception),特别是它们在函数式编程里的影响。十几年前Java出现时,在当时它是相当有创意的。特别是它的异常处理机制,相对先前的C/C++有了很大的提高。例如,读取文件可以出现很多异常:文件可以不存在,可以为只读等等。相关Java的伪代码类似于:File&