После установки JDK9 я получаю это исключение при запуске своих проектов Scala. Обновление Scala до версии 2.12.2 также не решило мою проблему.
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
Ответы (3)
Модуль java.xml.bind
не разрешается по умолчанию при запуске кода по пути к модулю. Это означает, что если вы зависите от JAXB, вам нужно запустить с --add-modules java.xml.bind
или же развернуть JAXB на пути к классу (или пути к модулю).
Обновление: "Раздел «Модули, совместно используемые с Java EE, не разрешены по умолчанию»» руководства по миграции JDK 9 содержит дополнительную информацию по этой теме.
javaOptions in ThisBuild += "--add-modules=ALL-SYSTEM"
- person Epicurist; 24.01.2018
javaOptions in ThisBuild += "--add-modules=java.xml.bind"
было бы лучше. Не забывайте знак равенства! Протестировано с Java версии 9.0.4
- person Epicurist; 24.01.2018
Вы можете добавить зависимости в maven
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
Чтобы добавить к предыдущему ответу, я хотел бы сослаться на следующий ответ: https://stackoverflow.com/a/43574427/3751268< /а>. Я думаю, что он подробно описывает, какой способ предоставления библиотек, таких как jaxb
, является желательным.
В частности, для Scala я добавляю его вот так в свой libraryDependencies
:
libraryDependencies += Seq("javax.xml.bind" % "jaxb-api" % "2.3.0")
jaxb-api:2.3.0
, чтобы решить эту проблему идеально. - person Naman   schedule 20.09.2017