首页 > 解决方案 > jaxb:未找到 xjc.sh java.activation

问题描述

我已经下载了 jaxb-ri:

$ tree -L 1
.
├── bin
├── docs
├── License.txt
├── mod
├── samples
└── ThirdPartyLicenseReadme.txt

我的java版本是:

$ java -version
openjdk version "11.0.7" 2020-04-14

不过,当我尝试执行时xjc.sh -help,我收到以下错误消息:

Java major version: 11
java.lang.module.FindException: Module java.activation not found, required by com.sun.istack.runtime
    at java.base/java.lang.module.Resolver.findFail(Resolver.java:877)
    at java.base/java.lang.module.Resolver.resolve(Resolver.java:191)
    at java.base/java.lang.module.Resolver.resolve(Resolver.java:140)
    at java.base/java.lang.module.Configuration.resolveAndBind(Configuration.java:315)
    at java.base/java.lang.module.ModuleDescriptor$1.resolveAndBind(ModuleDescriptor.java:2693)
    at java.base/jdk.internal.module.ModuleBootstrap.boot(ModuleBootstrap.java:354)
    at java.base/java.lang.ClassLoader.initializeClassLoaders(ClassLoader.java:211)
    at java.base/java.lang.Thread.initialize(Thread.java:430)
    at java.base/java.lang.Thread.<init>(Thread.java:155)

标签: javajaxbjava-11java-platform-module-systemopenjdk-11

解决方案


您需要包含 javax.activation 模块。我是这样做的:

    ...
    JAXB_PATH=${JAXB_HOME}/mod/jaxb-xjc.jar:\
    ${JAXB_HOME}/mod/javax.activation-1.2.0.jar:\
    ${JAXB_HOME}/mod/jaxb-api.jar:\
    ...

然后再次运行 xjc.sh :)


推荐阅读