java - sbt编译错误: no augmentString method in StringOps

标签 java scala submit sbt

我使用的是 Fedora 21:

  • scala 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 在终端中可用。然后,当我 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.4yum 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/

相关文章:

javascript - 提交表单或模拟按下 Enter/Return

scala - 抑制 "discarded non-Unit value"警告

Perl Mechanize 提交按钮

java - JPA 和 EJB 中的错误

java - java程序如何根据操作系统决定执行哪个命令

scala - Lambda 类型推断和隐式转换

scala - 禁用错误警告 "possible missing interpolator"

vue.js - Vee验证3个提交表单时发现的错误

java - 无法使用Neo4j 1.9.M05

java - 从 Interval 获取 List<LocalDate> 的最佳方法