测试在命令行上运行,在Scala-IDE中失败

时间:2019-02-01 07:52:44

标签: eclipse scala unit-testing scala-ide

右键单击运行测试类时,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中的说明进行了更新。

这发生在带有Coursera's scala course中的patmat项目的最新Scala IDE(4.7.0-vfinal-2017-09-29T14:34:02Z-Typesafe)中。

原因是什么,如何解决?

请求的信息

Java构建路径为

java build path

2 个答案:

答案 0 :(得分:3)

请使用Scala库2.11版,因为其他基于Scala的依赖项(例如scala-xml和scalatest)均基于Scala库2.11版

答案 1 :(得分:3)

您拥有_2.11库和2.12.3 Scala库this won't work的组合。似乎_2.11依赖项来自SBT(从路径判断)。

您需要在SBT项目中更改Scala IDE的Scala版本(setting correct scala version on scala ide进行说明)或set scalaVersion := "2.12.3",然后重新运行sbt eclipse