gpt4 book ai didi

intellij-idea - JDK15 上的 JAXB : which jars are needed?

转载 作者:行者123 更新时间:2023-12-04 07:59:24 32 4
gpt4 key购买 nike

我使用 JDK15 在 intelliJIDEA 中工作,没有任何 Gradle、Maven 或其他。
是的,我们都知道 JAXB 从 JDK11 开始从 JDK 中删除。
所以我尝试简单地将一些库作为 jar 文件添加到项目中:

    jaxb-runtime-3.0.0
jaxb-impl-3.0.0
jaxb-core-3.0.0
jaxb-api-2.4.0-b180830.03592
xmlbeans-2.6.02
activation-1.0.22
不过,我得到的只是:
    javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
在这一行:
    jaxbContext = JAXBContext.newInstance(Hamster.class);
有什么线索吗?

最佳答案

您混淆了不兼容的库版本:都不是 jaxb-impl-3.0.0.jar也不是 jaxb-runtime-3.0.0.jar是 JAXB API 2.4.0 的实现。 Java EE 8 规范(如 JAXB 2.4.0)和 Jakarta EE 9 之间发生了重大变化。规范(如 JAXB 3.0):基本上是包命名空间 javax.已被替换为 jakarta.* .
因此,为了使用 JAXB 3.0,您需要:

  • 要么 jaxb-impl-3.0.0.jar 来自 com.sun.xml.bind及其依赖项或 jaxb-runtime-3.0.0.jar 来自 org.glassfish.jaxb及其依赖项。前者依赖较少(许多次要依赖被压缩成 jaxb-core-3.0.0.jar ;你不应该把它与 same nameorg.glassfish.jaxb 工件误认为),
  • 替换所有 javax.xml.bindjakarta.xml.bind在你的代码中。
  • 关于intellij-idea - JDK15 上的 JAXB : which jars are needed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66545268/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com