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

После установки JDK9 я получаю это исключение при запуске моих проектов Scala. Обновление Scala до 2.12.2 также не помогло решить мою проблему.

Ответ 1

Модуль java.xml.bind не разрешается по умолчанию при запуске кода на пути к модулю. Это означает, что если вы зависите от JAXB, вам нужно запустить с помощью --add-modules java.xml.bind или же развернуть JAXB по пути класса (или пути к модулю).

Обновление. Раздел "" Модули, разделенные с помощью Java EE Not Resolved by Default" в Руководстве по миграции JDK 9 содержит дополнительную информацию по этой теме.

Ответ 2

Чтобы добавить к предыдущему ответу, я хотел бы сослаться на следующий ответ: fooobar.com/info/67174/.... Я думаю, что в нем подробно описывается, какой именно способ предоставить библиотеки, такие как jaxb.

В частности, для Scala, я добавляю это так в мои libraryDependencies:

libraryDependencies += Seq("javax.xml.bind" % "jaxb-api" % "2.3.0")