首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java 9+中运行XJC

如何在Java 9+中运行XJC
EN

Stack Overflow用户
提问于 2018-10-03 01:05:18
回答 1查看 5.1K关注 0票数 5

我下载了JAXB 2.3.0.1JavaBeans激活框架1.2.0 (基于这个问题的答案)。我将所有JAR文件解压缩到同一个目录中,然后在该目录中运行以下命令:

代码语言:javascript
复制
java -cp jaxb-api.jar;jaxb-core.jar;jaxb-impl.jar;javax.activation-1.2.0.jar
    -jar jaxb-xjc.jar [xjc-arguments]

上面的命令在以下消息中失败:

java.lang.NoClassDefFoundError: javax/activation/DataSource 更接近. 原因: java.lang.ClassNotFoundException: javax.activation.DataSource

我已经验证了javax.activation-1.2.0.jar文件中存在类。我还尝试使用新的(to Java 9+)参数-p . --add-modules java.activation,但这在以下错误消息中失败:

启动层初始化过程中发生错误 java.lang.modules.ResolutionException:模块jaxb.core和jaxb.impl导出包com.sun.xml.bind.marshaller到模块java.activation

如果我尝试-cp--add-modules的组合,就会得到一个不同的启动层初始化错误。有人知道如何让XJC使用Java 9+平台运行吗?

我的具体用例是Windows上的OpenJDK 11。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-03 17:46:28

主要问题是java可执行文件不支持同时指定-cp-jar命令行参数。感谢艾伦·贝特曼提供的信息!

因此,使其工作的正确方法是使用以下命令:

代码语言:javascript
复制
java -cp javax.activation-1.2.0.jar;jaxb-xjc.jar com.sun.tools.xjc.XJCFacade
    [xjc-arguments]

为了简化运行XJC,打开bin/xjc.bat (从jaxb-ri-2.3.0.zip中提取),并编辑命令行以匹配上面的调用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52618325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档