2014-12-30 73 views
0

没有augmentString方法我在Fedora 21:SBT编译错误:在StringOps

  • 斯卡拉2.10.3
  • 的Java 1.8.0
  • SBT 0.13.1

使用yum安装了ScalajavaSbt手动安装并且在~/.bashrc文件末尾添加行export PATH=/home/igor/Documents/Projects/Scala/Assignments/sbt/bin:$PATH以使sbt在终端中可用。然后,当我的CD到/home/igor/Documents/Projects/Scala/Assignments/example和运行sbt -h,通常显示的帮助信息,但如果开始SBT:

[[email protected] 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和新斯卡拉添加到路径就像我与SBT手工做的,同样的错误依然存在。

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

+0

“java.lang.NoSuchMethodError:scala.Predef $ .augmentString”大部分时间由于依赖jar版本不匹配而发生此错误。确保你的路径中有正确的jar版本。 – kosa

回答

1

不知道,但它可能是一个问题与Java 8 从类型安全blog斯卡拉2.11

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的课程。这是一个真棒课程顺便说一句:)

+1

我将这些行添加到'.bashrc'文件中: export PATH =/home/igor/Documents/Projects/Scala/Assignments/sbt/bin:$ PATH export PATH =/home/igor/Documents/Projects/Scala/Assignments/jdk1.7.0_72/bin:$ PATH export PATH =/home/igor/Documents/Projects/Scala/Assignments/jdk1.7.0_72/jre/bin:$ PATH export JAVA_HOME =/home/igor/Documents/Projects/Scala/Assignments/jdk1.7.0_72 export JRE_HOME =/home/igor/Documents/Projects/Scala/Assignments/jdk1.7.0_72/jre export PATH =/home/igor/Documents/Projects/Scala /分配/斯卡拉-2.10.4/bin中:$ PATH'。 这种方式java 1.8被忽略,java 1.7被sbt使用。 –