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

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


person abshar    schedule 23.03.2017    source источник
comment
Возможно, вы захотите перейти к использованию jaxb-api:2.3.0, чтобы решить эту проблему идеально.   -  person Naman    schedule 20.09.2017
comment
Возможный дубликат Intellij: проект Scala на основе SBT не собирается с Java 9   -  person user8664964    schedule 26.09.2017


Ответы (3)


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

Обновление: "Раздел «Модули, совместно используемые с Java EE, не разрешены по умолчанию»» руководства по миграции JDK 9 содержит дополнительную информацию по этой теме.

person Alan Bateman    schedule 23.03.2017
comment
теоретически это решение, но как попросить scala/sbt добавить этот аргумент при запуске java? - person Aero Wang; 17.11.2017
comment
Что вы думаете о javaOptions in ThisBuild += "--add-modules=ALL-SYSTEM" - person Epicurist; 24.01.2018
comment
javaOptions in ThisBuild += "--add-modules=java.xml.bind" было бы лучше. Не забывайте знак равенства! Протестировано с Java версии 9.0.4 - person Epicurist; 24.01.2018
comment
@AeroWang ты нашел ответ на свой вопрос? - person Christopher Peter; 15.03.2018
comment
@ChristopherPeter нет, я сдался - person Aero Wang; 19.03.2018

Вы можете добавить зависимости в maven

    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>
person Henboter    schedule 12.06.2020