使用Scala的Joda Time发生类中断错误


91

我正在将Joda Time存储库添加到SBT中,

libraryDependencies ++= Seq(
  "joda-time"         % "joda-time"           % "2.1"
)

然后我像这样愉快地使用它:

 val ymd = org.joda.time.format.DateTimeFormat.forPattern("yyyyMMdd")
  ymd.parseDateTime("20121212")

但是,当我在SBT中编译项目时,我会感到讨厌:

[warn] Class org.joda.convert.FromString not found - continuing with a stub.
[warn] Caught: java.lang.NullPointerException while parsing annotations in /home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class)
[error] error while loading DateTime, class file '/home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class)' is broken
[error] (class java.lang.RuntimeException/bad constant pool tag 10 at byte 42)

我尝试了2.0版的joda-time,但得到了相同的错误。

Answers:


177

添加此依赖项:

“ org.joda”%“ joda-convert”%“ 1.8.1”

这是joda-time的可选依赖项。我必须将其添加到自己的项目中,以便Scala编译器接受使用joda-time jar的工作。

您的问题似乎是相同的。

版本是在编辑时,最新版本可以在这里找到


61
对于将来,Scala并非不可取的原因是Java编译器可以加载缺少注释的类,而Scala则不能。我遇到过同样的问题,例如番石榴和JSR-305。
Alexey Romanov

为我工作了2013年2月12日,"joda-time" % "joda-time" % "2.1"以及"org.joda" % "joda-convert" % "1.2"
Dustin Getz

9
库不能正常工作是不可接受的,因为有人认为将某些库分开是很实际的。尤其是Java的defacto时间库。
哈桑·赛义德

我不确定100%,但是这种依赖性会影响jodatime行为。我有一个具有十几个依赖项的项目,但没有joda-convert这样的日期时间toString是yyyy-mm-ddThh-mm-ss。我已经创建了一个简单的项目,jodatimejoda-convert带有andedependices,所以我有了yyyy-mm-ddThh-mm-ss.000Z
樱桃

5
@ user2829759假设您有一个a.jar包含的依赖项@B class A,其中注释@B来自b.jar。在Java中,A如果a.jar没有b.jar构建路径,则可以在代码中使用;否则,可以在代码中使用。在Scala中,您不能。
阿列克谢·罗曼诺夫

1

我遇到了类似的问题:

[warn] Class net.jcip.annotations.NotThreadSafe not found - continuing with a stub.
[warn] Caught: java.lang.NullPointerException while parsing annotations in ~/.ivy2-p2/cache/org.opensaml/xmltooling/jars/xmltooling-1.3.4.jar(org/opensaml/xml/util/IDIndex.class)
[error] error while loading AttributeMap, class file '~/.ivy2-p2/cache/org.opensaml/xmltooling/jars/xmltooling-1.3.4.jar(org/opensaml/xml/util/AttributeMap.class)' is broken
[error] (class java.lang.RuntimeException/bad constant pool index: 0 at pos: 12058)

显式添加依赖项可以jcip-annotations-1.0.jar解决此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.