[英]How to Run XJC in Java 9+
我下載了JAXB 2.3.0.1和JavaBeans 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.