当用鼠标右键单击运行测试类,Eclipse的失败,
Caused by: java.lang.NoClassDefFoundError: scala/Product$class
at org.scalatest.time.Days$.<init>(Units.scala:291)
at org.scalatest.time.Days$.<clinit>(Units.scala)
at org.scalatest.time.Span$.<init>(Span.scala:585)
at org.scalatest.time.Span$.<clinit>(Span.scala)
at org.scalatest.tools.Runner$.<init>(Runner.scala:779)
at org.scalatest.tools.Runner$.<clinit>(Runner.scala)
at org.scalatest.tools.Runner.main(Runner.scala)
... 6 more
Caused by: java.lang.ClassNotFoundException: scala.Product$class
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 13 more
然而,它在与sbt test
命令行运行。在java.lang.NoClassDefFoundError: scala/Product$class描述的库已更新。
这发生了最新的Scala IDE(4.7.0-vfinal-2017-09-29T14:34:02Z-Typesafe
)与Coursera's scala course的patmat项目。
原因是什么,以及如何可以把它固定?
Java构建路径是
你有_2.11
库的组合和2.12.3
Scala库,this won't work。它看起来像_2.11
dependendencies来自SBT(从路径判断)。
您需要更改斯卡拉IDE的斯卡拉版本(setting correct scala version on scala ide介绍了如何)或set scalaVersion := "2.12.3"
在SBT项目,然后重新运行sbt eclipse
。
请使用Scala库版本2.11的其他基于Scala的依赖性比如Scala的XML和scalatest基于Scala库版本2.11