我使用以下Fedora 21:
斯卡拉2.10.3
Java 1.8.0
sbt 0.13.1Scala
和java
使用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.4
和yum remove scala
并将新的scala添加到路径中,就像我使用sbt手动进行的操作一样,则仍然存在相同的错误。有可能使sbt工作吗?我需要运行sbt Submit命令才能将作业提交给Coursera。
最佳答案
不确定,但这可能是Java 8的问题。
从用于scala 2.11的typesafe blogThe 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 :)