簡體   English   中英

如何在 Java 9+ 中運行 XJC

[英]How to Run XJC in Java 9+

我下載了JAXB 2.3.0.1JavaBeans Activation Framework (JAF) 1.2.0 (基於對這個問題的回答)。 我將所有 JAR 文件解壓縮到同一目錄,然后在該目錄中運行以下命令:

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 文件中存在該類。 我也嘗試過使用新的(Java 9+)參數-p . --add-modules java.activation -p . --add-modules java.activation ,但失敗並顯示以下錯誤消息:

啟動層初始化時出錯
java.lang.modules.ResolutionException:模塊 jaxb.core 和 jaxb.impl 將包 com.sun.xml.bind.marshaller 導出到模塊 java.activation

如果我嘗試組合使用-cp--add-modules-cp --add-modules不同的引導層初始化錯誤。 有誰知道如何讓 XJC 使用 Java 9+ 平台運行?

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

主要問題是java可執行文件不支持同時指定-cp-jar命令行參數。 感謝 Alan Bateman 提供的信息!

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

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中提取),編輯命令行匹配上面的調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM