基本的Scala程序在JetBrains / Idea / intelliJ

时间:2015-07-24 06:35:09

标签: scala intellij-idea

我正在运行scala 2.8.0 SDK& Scala Plugin 1.5.2上的IntelliJ 14.1.4(最新版本)(也是最新版本)java-7-openjdk

object HelloWorld {
  def main(args: Array[String]) {
    println("Hello, world!")
  }
}

这是我收到的错误

我可能需要更改设置以使其运行吗? 该程序在Idea IntelliJ上作为Scala脚本运行

我必须使用 scala 2.8.0 而不是更高版本,我很乐意改变其他任何内容

`Information:24/7/15 12:01 PM - Compilation completed with 1 error and 7 warnings in 30s 907ms
Error:scalac: Error: org.jetbrains.jps.incremental.scala.remote.ServerException
Error compiling sbt component 'compiler-interface-2.8.0.final-51.0'
    at sbt.compiler.AnalyzingCompiler$$anonfun$compileSources$1$$anonfun$apply$2.apply(AnalyzingCompiler.scala:145)
    at sbt.compiler.AnalyzingCompiler$$anonfun$compileSources$1$$anonfun$apply$2.apply(AnalyzingCompiler.scala:142)
    at sbt.IO$.withTemporaryDirectory(IO.scala:285)
    at sbt.compiler.AnalyzingCompiler$$anonfun$compileSources$1.apply(AnalyzingCompiler.scala:142)
    at sbt.compiler.AnalyzingCompiler$$anonfun$compileSources$1.apply(AnalyzingCompiler.scala:139)
    at sbt.IO$.withTemporaryDirectory(IO.scala:285)
    at sbt.compiler.AnalyzingCompiler$.compileSources(AnalyzingCompiler.scala:139)
    at sbt.compiler.IC$.compileInterfaceJar(IncrementalCompiler.scala:33)
    at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl$.org$jetbrains$jps$incremental$scala$local$CompilerFactoryImpl$$getOrCompileInterfaceJar(CompilerFactoryImpl.scala:87)
    at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl$$anonfun$getScalac$1.apply(CompilerFactoryImpl.scala:44)
    at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl$$anonfun$getScalac$1.apply(CompilerFactoryImpl.scala:43)
    at scala.Option.map(Option.scala:145)
    at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.getScalac(CompilerFactoryImpl.scala:43)
    at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.createCompiler(CompilerFactoryImpl.scala:22)
    at org.jetbrains.jps.incremental.scala.local.CachingFactory$$anonfun$createCompiler$1.apply(CachingFactory.scala:24)
    at org.jetbrains.jps.incremental.scala.local.CachingFactory$$anonfun$createCompiler$1.apply(CachingFactory.scala:24)
    at org.jetbrains.jps.incremental.scala.local.Cache$$anonfun$getOrUpdate$2.apply(Cache.scala:20)
    at scala.Option.getOrElse(Option.scala:120)
    at org.jetbrains.jps.incremental.scala.local.Cache.getOrUpdate(Cache.scala:19)
    at org.jetbrains.jps.incremental.scala.local.CachingFactory.createCompiler(CachingFactory.scala:23)
    at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:22)
    at org.jetbrains.jps.incremental.scala.remote.Main$.make(Main.scala:62)
    at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:20)
    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)
Warning:scalac: /tmp/sbt_3f4b2dad/compiler-interface-sources/CompilerInterface.scala:161: error: object creation impossible, since method registerTopLevelSym in trait GlobalCompat of type (sym: this.Symbol)Unit is not defined
Warning:scalac:             new Compiler() with RangePositions // unnecessary in 2.11
Warning:scalac:                             ^
Warning:scalac: /tmp/sbt_3f4b2dad/compiler-interface-sources/CompilerInterface.scala:165: error: class Compiler needs to be abstract, since method registerTopLevelSym in trait GlobalCompat of type (sym: Compiler.this.Symbol)Unit is not defined
Warning:scalac:     class Compiler extends CallbackGlobal(command.settings, dreporter, output)
Warning:scalac:               ^
Warning:scalac: two errors found

3 个答案:

答案 0 :(得分:0)

尝试使用scala 2.11.7或2.10.5 http://www.scala-lang.org/download/

答案 1 :(得分:0)

出于好奇,你试过使用不同的JDK吗? 也许JDK6 Hotspot甚至是JDK7 Hotspot?
我问,因为我在过去看到类似于Error compiling sbt component 'compiler-interface-2.8.0.final-51.0'的错误,它们通常与库和JDK版本的不兼容性有关。

我现在无法测试,但我稍后会看一看,如果还是个问题,请尝试重现。

答案 2 :(得分:0)

对于将来的旅行者,也首次设置Scala:

我遇到了类似的问题,发现将“项目解释器”更改为正确的JDK (使用OpenJDK 11代替了以前的JDK 8)是可行的。

例如参见 https://stackoverflow.com/a/29286865/10447904

我偶然发现的其他许多答案都集中在使用Settings -> Build -> Scala Compiler Server或配置文件来设置正确的JDK上,但是这些都不适合我。