2017-04-18 84 views
1

我想編譯項目在Intellij IDEA它使用Scala 2.10並要求Java 7編譯。Intellij IDEA:Scala 2.10項目與Java 7,UnsupportedClassVersionError

我使用jenv工具,命令行編譯(我已經安裝了它是爲Intellij IDEA插件以及以防萬一)和後我使用jenvJava 7並與該行編譯Maven項目:

jenv exec mvn clean install

一切正常。

但是,當我使用Intellij IDEAScala插件編譯失敗。我已經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版本和不匹配試圖運行它的版本。我也看到Unable to copile scala anymore問題創建爲JetBrains

那麼,有什麼辦法可以在Intellij建立這個項目?由於我堅持這一點,無法繼續。

+0

任何其他庫需要1.7。因此,如果您的依賴性爲1.8,則需要查找1.7版本 – efekctive

+0

不確定這是否是問題。我試圖從.m2文件夾中刪除所有的依賴關係,用java 7重新編譯它,但仍然出現錯誤。 –

+0

如果以1.8字節代碼再次下載依賴關係,則不會解決任何問題。你是否還在1.7 jvm下運行所有​​東西? – efekctive

回答

1

這個問題似乎與Intellij IDEA 2017.1本身bug is already there有關。我試過下載版本2016.6.3,它在那裏沒有任何問題。

0

在閱讀了Yuriy鏈接到的新的評論之後,我相信現在可以在不降級的情況下解決此問題。

關閉外部Scala編譯服務器爲我工作。可能需要升級Scala插件版本。

爲了關閉外部斯卡拉編譯服務器去File - >Settings... - >Languages & Frameworks - >Scala Compile Server,然後取消勾選「使用外部編譯服務器斯卡拉」選項

unckeck use external compile server for scala

此選項當我更新Scala插件以使用Nightly選項爲插件構建2017.2.675,然後重新啓動IntelliJ時出現。

要更新插件去File - >Settings... - >Languages & Frameworks - >Scala - >Updates,從下拉菜單中選擇夜間,點擊 「檢查更新」,安裝,然後重新啓動的IntelliJ。

enter image description here