编译失败:在Scala 2.10下从Java 8加载AnnotatedElement,ConcurrentMap,CharSequence时出错?

jnf*_*nfr 40 scala sbt

我正在使用以下内容:

  • 斯卡拉2.10.4
  • Scalatra 2.2.2
  • sbt 0.13.0
  • java 1.8.0
  • casbah 2.7.2
  • scalatra-sbt 0.3.5

我经常遇到这个错误:

21:32:00.836 [qtp1687101938-55] ERROR o.fusesource.scalate.TemplateEngine - Compilation failed:
error: error while loading CharSequence, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar(java/lang/CharSequence.class)' is broken
(class java.lang.RuntimeException/bad constant pool tag 18 at byte 10)
error: error while loading ConcurrentMap, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar(java/util/concurrent/ConcurrentMap.class)' is broken
(class java.lang.RuntimeException/bad constant pool tag 18 at byte 61)
two errors found
21:38:03.616 [qtp1687101938-56] ERROR o.fusesource.scalate.TemplateEngine - Compilation failed:
error: error while loading AnnotatedElement, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar(java/lang/reflect/AnnotatedElement.class)' is broken
(class java.lang.RuntimeException/bad constant pool tag 18 at byte 76)
one error found
Run Code Online (Sandbox Code Playgroud)

目前我在尝试调用.count()我的MongoDB集合时遇到了这个问题.

谷歌搜索,似乎可能是由依赖问题引起的.问题是,我正在使用Scalatra来提供API,实际上并不需要任何scalate的东西.我评论了所有对它的引用,但我仍然得到了它.它可能是我正在使用的库之间的依赖问题吗?

小智 50

在我的公司,我们遇到了CharSequence的这个问题.这是因为Scala 2.10.x不能与Java 8一起使用.这在Scalas 邮件列表中有所描述.切换回Java 7.


Jos*_*rdo 11

切换到Scala 2.10.4解决了我的问题.