【问题标题】:Test runs on command line, fails in Scala-IDE测试在命令行上运行,在 Scala-IDE 中失败
【发布时间】:2019-06-25 18:32:51
【问题描述】:

当右键单击运行测试类时,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 构建路径是

【问题讨论】:

  • 貌似是eclipse项目配置问题,我对eclipse不太熟悉。如果您在使用 IntelliJ IDEA 的项目中仍然遇到错误,请告诉我。
  • @LalitPrakash:就像 IntelliJ IDEA 中的魅力一样。任何线索如何在 Eclipse 中修复?

标签: eclipse scala unit-testing scala-ide


【解决方案1】:

您拥有_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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 你找到了解决方案,所以你得到了赏金。再次感谢你。另一个答案被接受,因为它包含有助于其他用户理解和解决问题的背景信息。
    猜你喜欢
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 2012-01-20
    相关资源
    最近更新 更多