Java9+遇到的问题,启动SpringBoot 遇到java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

要使JAXBAPI在运行时可用,请指定以下命令行选项:

--add-modules java.xml.bind

快速和肮脏的解决方案:(仅JDK 9/10)
要使JAXBAPI在运行时可用,请指定以下命令行选项:
--add-modules java.xml.bind

但是我仍然需要这个来使用Java 8

如果您尝试指定--add-modules对于旧的JDK,它会崩溃,因为它是一个无法识别的选项。我建议两种选择之一:

  1. 通过检查JDK版本,可以在启动脚本(如果有)中有条件地应用参数$JAVA_HOME/releaseJAVA_VERSION
  2. 您可以添加-XX:+IgnoreUnrecognizedVMOptions让JVM默默地忽略不可识别的选项,而不是崩溃。但要小心!您使用的任何其他命令行args都将不再由JVM对您进行验证。此选项适用于Oracle/OpenJDK以及IBMJDK(截至JDK8sr4)

替代快速解决方案:(仅限于JDK 9/10)

注意,您可以通过指定--add-modules java.se.ee选择。这,这个,那,那个java.se.ee模块是一个聚合模块,它包括java.se.ee以及上面的JavaEEAPI模块。

正确的长期解决方案:(所有JDK版本)

上面列出的JavaEEAPI模块都有标记@Deprecated(forRemoval=true)因此,它们可能会在Java 11中被删除。所以--add-moduleJava 11中的方法将不再有效。

在Java 11和后续中,您需要做的是在类路径或模块路径上包含您自己的JavaEEAPI副本。例如,可以将JAX-BAPI添加为maven依赖项,如下所示:

<!-- Java 6 = JAX-B Version 2.0   -->
<!-- Java 7 = JAX-B Version 2.2.3 -->
<!-- Java 8 = JAX-B Version 2.2.8 -->
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.2.11</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>2.2.11</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.2.11</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>

有关Java模块化的详细信息,请参阅Jep 261:模块系统



注:其他选项参数可能无法识别,IDEA可以使用--add-modules java.se.ee

参考原文:https://stackoverflow.com/questions/43574426/how-to-resolve-java-lang-noclassdeffounderror-javax-xml-bind-jaxbexception-in-j

补充IDEA,SpringBoot启动应用多次模拟多客户端

去掉右上角的√即可


以前用eclipse,现在公司得换了IDEA,不怎么熟悉,填坑中

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值