Замена флага --add-modules для Java11

У меня такая же ошибка, как описано на это обсуждение Google, т.е. push-подписки облачного эмулятора Google для службы pubsub не работают и вызывают:

java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

Решение, предлагаемое в этой ветке, - использовать флаг --add-modules:

java ... --add-modules ...

но в Java11 это больше невозможно.

Итак, я последовать, чтобы увидеть, как заменить этот флаг --add-modules, но теперь мне нужно отредактировать файл pom.xml и использовать maven для добавления новых зависимостей. Я просмотрел некоторые команды плагина maven, такие как mvn exec:java, потому что я не уверен, как перестроить проект, и просто хотел бы запустить мой:

java -jar cloud-pubsub-emulator-0.1-SNAPSHOT-all.jar ...

путем добавления необходимых зависимостей, которые заменят флаг --add-modules.

PS: Я попытался перейти на версию Java <11 и переустановить эмулятор pubsub, но возникла другая ошибка, поэтому я решил придерживаться последней версии Java.

Правильно, --add-modules не был удален. Вместо этого речь идет о модуле java.xml.bind, который был объявлен устаревшим для удаления в Java SE 9 и в конечном итоге удален в Java SE 11. JEP 320 содержит все подробности. Автономная версия JAXB опубликована в Maven, поэтому ее не должно быть слишком сложно перенести, и она не должна требовать каких-либо изменений в Java-коде.

Alan Bateman 01.01.2019 09:19

Большое спасибо, я наконец-то решил это, используя файлы .jar, как указано в этот ответ, и используя java -cp как подробный здесь, чтобы мне не приходилось проходить через pom.xml и mvn.

eddiemalou 01.01.2019 22:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
2 972
0

Другие вопросы по теме