2012-10-27 33 views
7

Tôi đang sử dụng Scala 2.9.2.Định dạng một chuỗi đơn giản, nhưng `java.lang.NoSuchMethodError`

Run Scala và thử nghiệm một mã đơn giản, mã này là ... OK:

... 
val title = "Hashing file (%s)..." format sizeToStr(file.length) 

Nhưng tôi không thể hiểu là những gì những gì, trong khi tôi đặt mã đó vào một ứng dụng đơn giản, biên soạn OK, khi chạy nó ném cái này:

java.lang.NoSuchMethodError: scala.Predef$.augmentString(Ljava/lang/String;)Lscala/collection/immutable/StringOps; 
     at group.pals.penguin.app.shasher.Shasher$.calcHash(shasher.scala:119) 
     at group.pals.penguin.app.shasher.Shasher$.main(shasher.scala:76) 
     at group.pals.penguin.app.shasher.Shasher.main(shasher.scala) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at scala.tools.nsc.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:71) 
     at scala.tools.nsc.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:31) 
     at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:139) 
     at scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:71) 
     at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:139) 
     at scala.tools.nsc.CommonRunner$class.run(ObjectRunner.scala:28) 
     at scala.tools.nsc.JarRunner$.run(MainGenericRunner.scala:16) 
     at scala.tools.nsc.CommonRunner$class.runAndCatch(ObjectRunner.scala:35) 
     at scala.tools.nsc.JarRunner$.runAndCatch(MainGenericRunner.scala:16) 
     at scala.tools.nsc.JarRunner$.runJar(MainGenericRunner.scala:28) 
     at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:78) 
     at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:96) 
     at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:105) 
     at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala) 

Bạn có thể giúp tôi không? Cảm ơn.

+2

có vẻ như bạn đang biên soạn dựa trên phiên bản thư viện chuẩn khác với thời gian bạn đang sử dụng tại thời gian chạy –

+0

@KimStebel Cảm ơn, đó là một đầu mối, tôi đang cố khắc phục theo cách đó ... –

+0

@KimStebel Bạn đã lưu lại giờ của tôi ! Trên thực tế tôi đã biên dịch cho '2.9.2', và chạy tệp .jar trong '2.10.0-RC1'. Bạn có thể xin vui lòng gửi nó như là một câu trả lời để tôi có thể chấp nhận nó? Cảm ơn bạn một lần nữa :-) –

Trả lời

12

Dường như bạn đang biên dịch dựa vào phiên bản thư viện chuẩn khác với thời gian bạn đang sử dụng khi chạy.

+1

Cảm ơn. Tôi đã biên dịch cho '2.9.2' và chạy tệp .jar trong '2.10.0-RC1'. Giải pháp: Tôi đang sử dụng [xsbt] (http://www.scala-sbt.org/), vì vậy hãy tạo một tệp mới 'build.sbt' tại thư mục gốc chứa 'scalaVersion: =' 2.10.0-RC1 này "'. –

Các vấn đề liên quan