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"
Эта опция появилась, когда я обновил плагин Scala для сборки 2017.2.675, используя опцию Nightly для плагина, а затем перезапустил IntelliJ.
Чтобы обновить плагин перейдите на File
->Settings...
->Languages & Frameworks
->Scala
-> Updates
выберите Nightly из выпадающего меню, нажмите "Проверить наличие обновлений", установите и перезапустите IntelliJ.