Несовместимость Scala с Java 9 — java.lang.NoClassDefFoundError

Просто запустите образец проекта Scala SBT после установки Java 9 на моем компьютере, и я воспользовался этим исключением. Я уже пробовал некоторые решения, которые нашел, но ничего.

Есть ли несовместимость между Java 9 и Scala?

Версия Скала: 2.12.3

Версия Java: версия Java "9"

IDE: IntelliJ

Заранее спасибо.

info] Compiling 7 Scala sources and 1 Java source to /Users/ermis/Projects/begining-scala/target/scala-2.12/classes...
[info] p.a.h.EnabledFilters - Enabled Filters (see <https://www.playframework.com/documentation/latest/Filters>):

play.filters.csrf.CSRFFilter
play.filters.headers.SecurityHeadersFilter
play.filters.hosts.AllowedHostsFilter

[info] play.api.Play - Application started (Dev)
Uncaught error from thread [play-dev-mode-akka.actor.default-
dispatcher-2]: javax/xml/bind/DatatypeConverter, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for for ActorSystem[play-dev-mode]
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
    at io.jsonwebtoken.impl.Base64Codec.decode(Base64Codec.java:26)
    at io.jsonwebtoken.impl.DefaultJwtBuilder.signWith(DefaultJwtBuilder.java:106)
    at play.api.mvc.JWTCookieDataCodec$JWTFormatter.format(Cookie.scala:710)
    at play.api.mvc.JWTCookieDataCodec.encode(Cookie.scala:569)
    at play.api.mvc.JWTCookieDataCodec.encode$(Cookie.scala:567)
    at play.api.mvc.DefaultJWTCookieDataCodec.encode(Cookie.scala:760)
    at play.api.mvc.FallbackCookieDataCodec.encode(Cookie.scala:734)
    at play.api.mvc.FallbackCookieDataCodec.encode$(Cookie.scala:733)
    at play.api.mvc.DefaultSessionCookieBaker.encode(Session.scala:95)
    at play.api.mvc.CookieBaker.encodeAsCookie(Cookie.scala:414)
    at play.api.mvc.CookieBaker.encodeAsCookie$(Cookie.scala:413)
    at play.api.mvc.DefaultSessionCookieBaker.encodeAsCookie(Session.scala:95)
    at play.api.mvc.Result.$anonfun$bakeCookies$2(Results.scala:281)
    at scala.Option.map(Option.scala:146)
    at play.api.mvc.Result.bakeCookies(Results.scala:280)
    at play.core.server.common.ServerResultUtils.prepareCookies(ServerResultUtils.scala:227)
    at play.core.server.AkkaHttpServer.$anonfun$executeAction$3(AkkaHttpServer.scala:302)
    at akka.http.scaladsl.util.FastFuture$.strictTransform$1(FastFuture.scala:41)
    at akka.http.scaladsl.util.FastFuture$.transformWith$extension1(FastFuture.scala:55)
    at akka.http.scaladsl.util.FastFuture$.flatMap$extension(FastFuture.scala:26)
    at play.core.server.AkkaHttpServer.executeAction(AkkaHttpServer.scala:301)
    at play.core.server.AkkaHttpServer.executeHandler(AkkaHttpServer.scala:254)

Я пробовал это, но не работал.

--add-modules java.xml.bind или --add-modules java.se.ee < img src="https://i.stack.imgur.com/XoLXk.png" alt="введите здесь описание изображения">


person pik4    schedule 01.10.2017    source источник
comment
Возможный дубликат Intellij: проект Scala на основе SBT не строится с Java 9. Отзовет голосование, если вопрос будет отредактирован, чтобы объяснить, что все из текущих решений не помогло. @pkont Пожалуйста, отметьте меня для такого случая. В противном случае ответ будет удален, если он будет закрыт как дубликат.   -  person Naman    schedule 02.10.2017


Ответы (2)


Попробуйте добавить параметр компилятора, чтобы временно исправить это:

--add-modules java.se.ee

поскольку общий доступ к модулю Java EE не будет разрешен по умолчанию в JDK9.

Вы также можете отслеживать проблему в Support JDK 9 на сайте scala-dev. репозиторий для обновлений, а также.

person Naman    schedule 01.10.2017
comment
Я пробовал оба из них, но не работал. --add-modules java.xml.bind --add-modules java.se.ee - person pik4; 01.10.2017
comment
@pkont Вы пробовали --add-modules java.se.ee по отдельности? Какую ошибку вы получили еще? - person Naman; 01.10.2017
comment
то же, что и предыдущий случай - person pik4; 01.10.2017
comment
@pkont а как насчет --add-modules ALL-SYSTEM? - person Naman; 01.10.2017
comment
@pkont На самом деле я думаю, что нашел дубликат stackoverflow.com/questions/46381242/, не работает ли ни одно из упомянутых там решений? Если нет, то обновите вопрос с этой информацией, пожалуйста. - person Naman; 01.10.2017
comment
на самом деле должно быть --add-modules java.xml.bind, другие из модуля java.se.ee сильно уступают реальным реализациям - person Krzysztof Krasoń; 02.10.2017
comment
@KrzysztofKrasoń Ya ... на самом деле мое первоначальное предложение по связанному сообщению будет ждать, пока OP вернется к нему. Я проголосовал за это как за дубликат увядания. - person Naman; 02.10.2017
comment
Это сработало для меня. Его нужно добавить в Shared build process VM options, просто найдите его в диалоговом окне настроек. - person Lachlan; 16.10.2017

Я просто удаляю Java 9, пока кто-нибудь не даст мне немного света, и компиляция будет работать как обычно.

person pik4    schedule 09.10.2017