Я скачал 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 / активации / DataSource...Причина: java.lang.ClassNotFoundException: javax.activation.DataSource
Я проверил, что класс существует в файле javax.activation-1.2.0.jar.Я также попытался использовать новые (для 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+?
Мой конкретный пример использования - OpenJDK 11 для Windows.