Intellij IDEA:Scala 2.10项目和Java 7,不支持ClassVersionError
我试图在Intellij IDEA:Scala 2.10项目和Java 7,不支持ClassVersionError,java,scala,maven,intellij-idea,jenv,Java,Scala,Maven,Intellij Idea,Jenv,我试图在intellijidea中编译这个项目,它使用scala2.10,需要java7来编译 我正在使用jenv工具从命令行编译(为了以防万一,我安装了intellijidea的插件),在jenv上使用java7并用这一行编译Maven项目之后: jenv exec mvn干净安装 一切都很完美 但是,当我将intellijidea与Scala插件一起使用时,编译失败。我在Scala编译器服务器、Java编译器、项目配置等所有地方都设置了Java 1.7设置。故障堆栈跟踪如下: Error:s
intellijidea
中编译这个项目,它使用scala2.10
,需要java7
来编译
我正在使用jenv
工具从命令行编译(为了以防万一,我安装了intellijidea
的插件),在jenv
上使用java7
并用这一行编译Maven
项目之后:
jenv exec mvn干净安装
一切都很完美
但是,当我将intellijidea
与Scala
插件一起使用时,编译失败。我在Scala编译器服务器
、Java编译器
、项目配置等所有地方都设置了Java 1.7
设置。故障堆栈跟踪如下:
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版本与试图运行它的版本之间不匹配。我还看到了为JetBrains创建的问题
那么,我有没有办法在
Intellij
中构建这个项目?因为我被这件事缠住了,无法继续。这个问题似乎与Intellij IDEA 2017.1本身有关,而。我已尝试下载版本2016.6.3
,它在那里运行良好,没有任何问题。在阅读了Yuriy链接的bug的新注释后,我相信现在可以在不降级的情况下修复此问题
关闭外部Scala编译服务器对我来说很有效。可能需要升级Scala插件版本
要关闭外部Scala编译服务器,请转到文件
->设置…
->语言和框架
->Scala编译服务器
并取消选中“使用外部Scala编译服务器”选项
当我使用插件的Nightly选项将Scala插件更新为build 2017.2.675,然后重新启动IntelliJ时,出现了此选项
要更新插件,请转到文件->设置…
->语言和框架->Scala
->更新,从下拉列表中选择夜间,单击“检查更新”,安装并重新启动IntelliJ
任何其他库都需要为1.7。因此,如果依赖项为1.8,则需要查找1.7版本不确定这是否是问题所在。我已尝试从.m2文件夹中删除所有依赖项,用java 7重新编译它,但仍然会出现错误。如果将依赖项作为1.8字节代码再次下载,则删除依赖项不会解决任何问题。您是否也在1.7JVM下运行所有内容?这可能不是问题所在,但很容易检查。与其事后才发现自己是罪魁祸首,不如早点抛弃那些容易犯下的错误