我使用的是 Fedora 21:
- scala 2.10.3
- java 1.8.0
- sbt 0.13.1
Scala
和 java
使用 yum
安装。 Sbt
手动安装,并在 ~/.bashrc
文件末尾添加行 export PATH=/home/igor/Documents/Projects/Scala/Assignments/sbt添加/bin:$PATH
以使 sbt 在终端中可用。然后,当我 cd 到 /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 的问题。 来自类型安全 blog对于 scala 2.11
Scala 2.11 系列以 Java 6 为目标,对 Java 8 提供(不断发展的)实验性支持。在 2.11 中,Java 8 支持主要限于读取 Java 8 字节码和解析 Java 8 源代码。我们将在整个 2.11 系列中扩展 Scala 的(实验性)Java 8 支持和互操作。
如果 2.11 版本只有实验性支持,那么 2.10 也不会提供对 Java 8 的适当支持。您可以在 java 7 上完成该类(class)。顺便说一句,这是一门很棒的类(class):)
关于java - sbt编译错误: no augmentString method in StringOps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27708453/