我使用以下Fedora 21:


斯卡拉2.10.3
Java 1.8.0
sbt 0.13.1


Scalajava使用yum安装。手动安装Sbt,并在~/.bashrc文件的末尾添加export PATH=/home/igor/Documents/Projects/Scala/Assignments/sbt/bin:$PATH行,以使sbt在终端中可用。然后,当我进入/home/igor/Documents/Projects/Scala/Assignments/example并运行sbt -h时,通常会显示帮助消息,但如果启动sbt:

[igor@prague example]$ sbt
Loading /home/igor/Documents/Projects/Scala/Assignments/sbt/bin/sbt-launch-lib.bash
OpenJDK Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
java.lang.NoSuchMethodError: scala.Predef$.augmentString(Ljava/lang/String;)Lscala/collection/immutable/StringOps;
    at sbt.ConsoleLogger$.<init>(ConsoleLogger.scala:129)
    at sbt.ConsoleLogger$.<clinit>(ConsoleLogger.scala)
    at sbt.StandardMain$.<init>(Main.scala:52)
    at sbt.StandardMain$.<clinit>(Main.scala)
    at sbt.xMain.run(Main.scala:26)
    at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:57)
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:77)
    at xsbt.boot.Launch$.run(Launch.scala:57)
    at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:45)
    at xsbt.boot.Launch$.launch(Launch.scala:65)
    at xsbt.boot.Launch$.apply(Launch.scala:16)
    at xsbt.boot.Boot$.runImpl(Boot.scala:32)
    at xsbt.boot.Boot$.main(Boot.scala:21)
    at xsbt.boot.Boot.main(Boot.scala)
Error during sbt execution: java.lang.NoSuchMethodError: scala.Predef$.augmentString(Ljava/lang/String;)Lscala/collection/immutable/StringOps;


如果我下载scala 2.10.4yum remove scala并将新的scala添加到路径中,就像我使用sbt手动进行的操作一样,则仍然存在相同的错误。

有可能使sbt工作吗?我需要运行sbt Submit命令才能将作业提交给Coursera。

最佳答案

不确定,但这可能是Java 8的问题。
从用于scala 2.11的typesafe blog

The Scala 2.11 series targets Java 6, with (evolving) experimental support for Java 8. In 2.11, Java 8 support is mostly limited to reading Java 8 bytecode and parsing Java 8 source. We will be expanding Scala's (experimental) Java 8 support and interop throughout the 2.11 series.

如果2.11版本仅具有实验性支持,那么2.10也将没有对Java 8的适当支持。您可以在Java 7上完成该课程。这是一个很棒的课程BTW :)

07-24 13:29
查看更多