如何通过添加外部 jar 来解析 SE-11 的 javax.xml.bind?

问题描述 投票:0回答:2

我有一个足够简单的程序:

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;

public class Main {

    public static void main(String[] args) throws JAXBException {
        JAXBContext context0 = JAXBContext.newInstance(String.class);
        
    }

}

因为我想使用java-11,所以不再提供javax.xml.bind,所以我需要自己添加它。 我不想使用 Maven,但添加外部 jar。 正如所建议的https://stackoverflow.com/a/43574427/3014199 我首先将

jakarta.xml.bind-api-2.3.2.jar
添加到模块路径,然后将其依赖项 https://mvnrepository.com/artifact/jakarta.xml.bind/jakarta.xml.bind-api/2.3.2
jakarta.activation-api-1.2.1.jar
添加到模块路径中并标记两者用于出口:
enter image description here enter image description here

现在我明白了

Error: Unable to initialize main class Main
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

所以我将上面建议的其他库 jaxb-runtime-2.3.2.jar 添加到类路径中: enter image description here

错误没有改变,所以我添加了所有编译依赖项https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime/2.3.2:

  • FastInfoset-1.2.16.jar
  • istack-commons-runtime-3.0.8.jar
  • stax-ex-1.8.1.jar
  • txw2-2.3.2.jar

到类路径:
enter image description here
可以肯定的是,我再次检查了“订购和导出”下的所有罐子,但错误仍然存在。 我还尝试将所有 jar 添加到模块路径并将所有 jar 添加到类路径但无济于事。

java eclipse java-11
2个回答
1
投票

将所有 jar 移动到类路径后,我得到了 com.sun.xml.internal 的 classNotFoundException... 在 https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-impl/2.3.1 添加 jar 后,一切正常。


0
投票

在 IntelliJ 上,我进入模块设置,然后添加库,然后 Maven,然后输入

javax.xml.ws
并添加它,瞧,修复了。

© www.soinside.com 2019 - 2024. All rights reserved.