Intellij IDEA: проект Scala 2.10 с Java 7, UnsupportedClassVersionError

Я пытаюсь скомпилировать проект в Intellij IDEA который использует Scala 2.10 и требует Java 7 Скомпилировать.

я использую jenv инструмент для компиляции из командной строки (я установил его плагин для Intellij IDEA а на всякий случай) а после пользуюсь Java 7 на jenv и скомпилировать Maven проект с этой линией:

jenv exec mvn clean install

Все работает отлично.

Однако, когда я использую Intellij IDEA с Scala плагин компиляция не удалась. я имею Java 1.7 настройки установлены везде, где я нашел, в Scala Compiler Server, в Java Compiler, конфигурация проекта и т. д. Трассировка стека ошибок:

Error:scalac: Error: org/jetbrains/jps/incremental/messages/BuildMessage$Kind
java.lang.UnsupportedClassVersionError: org/jetbrains/jps/incremental/messages/BuildMessage$Kind
    at org.jetbrains.jps.incremental.scala.local.AbstractCompiler$ClientReporter.log(AbstractCompiler.scala:92)
    at xsbt.DelegatingReporter.info0(DelegatingReporter.scala:39)
    at scala.tools.nsc.reporters.Reporter$$anonfun$error$1.apply$mcV$sp(Reporter.scala:70)
    at scala.tools.nsc.reporters.Reporter$$anonfun$error$1.apply(Reporter.scala:70)
    at scala.tools.nsc.reporters.Reporter$$anonfun$error$1.apply(Reporter.scala:70)
    at scala.tools.nsc.reporters.Reporter.withoutTruncating(Reporter.scala:42)
    at scala.tools.nsc.reporters.Reporter.error(Reporter.scala:70)
    at scala.tools.nsc.Global.globalError(Global.scala:228)
    at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1564)
    at scala.tools.nsc.Global$Run.compileSources(Global.scala:1552)
    at scala.tools.nsc.Global$Run.compile(Global.scala:1661)
    at xsbt.CachedCompiler0.run(CompilerInterface.scala:115)
    at xsbt.CachedCompiler0.run(CompilerInterface.scala:94)
    at xsbt.CompilerInterface.run(CompilerInterface.scala:22)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101)
    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:47)
    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41)
    at org.jetbrains.jps.incremental.scala.local.IdeaIncrementalCompiler.compile(IdeaIncrementalCompiler.scala:32)
    at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:26)
    at org.jetbrains.jps.incremental.scala.remote.Main$.make(Main.scala:68)
    at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:25)
    at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.martiansoftware.nailgun.NGSession.run(NGSession.java:319)

Как я понимаю, это означает несоответствие между java-версией скомпилированного кода и версией, которая пытается его запустить. Я также видел невозможность скопировать scala больше проблема, созданная для JetBrains,

Итак, есть ли способ, которым я могу построить этот проект в Intellij? Как я застрял с этим и не могу продолжить.

2 ответа

Решение

Кажется, проблема связана с Intellij IDEA 2017.1 Сам баг уже есть. Я пытался скачать версию 2016.6.3 и это хорошо работает там без каких-либо проблем.

После прочтения новых комментариев к ошибке, связанной с Юрием, я считаю, что теперь можно исправить эту проблему без понижения версии.

У меня работало отключение внешнего сервера компиляции Scala. Возможно, потребуется обновить версию плагина Scala.

Чтобы отключить внешний сервер компиляции Scala, перейдите в File->Settings...->Languages & Frameworks->Scala Compile Server и снимите флажок "Использовать внешний сервер компиляции для Scala"

unckeck использовать внешний сервер компиляции для Scala

Эта опция появилась, когда я обновил плагин Scala для сборки 2017.2.675, используя опцию Nightly для плагина, а затем перезапустил IntelliJ.

Чтобы обновить плагин перейдите на File->Settings...->Languages & Frameworks->Scala -> Updatesвыберите Nightly из выпадающего меню, нажмите "Проверить наличие обновлений", установите и перезапустите IntelliJ.

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