Iva*_*van 1 comparison datetime scala jodatime
这是一个例子:
import org.scala_tools.time.Imports._
...
val dt1 : DateTime = new DateTime ("2010-09-01T12:00Z")
val dt2 : DateTime = new DateTime ("2010-10-01T12:10Z")
println (dt1 < dt2) // This is the Main.scala:48 line mentioned in the stack trace below
...
如果我编译并运行它,我得到
java.lang.NoClassDefFoundError: scala/Ordered
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.scala_tools.time.JodaImplicits$class.RichReadableInstant(Implicits.scala:70)
at org.scala_tools.time.Imports$.RichReadableInstant(Imports.scala:20)
at myproject.Main$.main(Main.scala:48)
...
可能是什么原因以及如何解决这个问题?
我使用所有(joda-time,SBT,Scala,SUN JVM)最新的稳定版本(excl joda-time - 我使用其最新的快照版本).
您使用的Scala版本是什么?确保使用相同的Scala版本编译joda-time包装器.
检查当前的文档,发现Ordered属于scala.math.有一个scala.Ordered但它是2.8之前.确切地说,仍然存在scala.Ordered - 实际上是两个.一个是val,另一个是类型别名,两者都在包对象scala中定义.
似乎正确的joda-time包装器位于http://www.scala-tools.org/repo-releases/org/scala-tools/time/time_2.8.0/0.2/ - 但它纯粹是猜测.