ScalaTest Eclipse插件说ClassNotFoundException

时间:2014-08-14 04:38:55

标签: eclipse scalatest

我有一个ScalaTest测试,我正试图通过右键单击run as > ScalaTest File来运行它,但Eclipse告诉我

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Function1 at scala.tools.eclipse.scalatest.launching.ScalaTestLauncher.main(ScalaTestLauncher.scala) Caused by: java.lang.ClassNotFoundException: scala.Function1 at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 1 more

我不知道该怎么做。

我正在使用Eclipse的Scala IDE版本 构建ID:3.0.4-2.11-20140723-2253-Typesafe
版本4.3.0

我正在使用Scala版本2.11.1
ScalaTest版本2.11-2.1.6

我通过Typesafe Activator程序获得了Scala和ScalaTest,并从他们的webapp生成了Eclipse项目定义。 ScalaTest插件来自Scala IDE网站。

2 个答案:

答案 0 :(得分:4)

我在4.1.1-vfinal-20150727-1320-Typesafe的{​​{1}}版本中收到此例外。这是因为项目缺少Scala库,尽管事实上我将我的项目创建为Scala项目。我必须通过右键单击并选择Scala IDE Eclipse 4.3.0

来手动添加scala库

在添加库之前,它看起来像这样:

enter image description here

添加库并运行ScalaTest测试后,它看起来像这样:

enter image description here

有人可能会猜到,当使用Add Scala Library to Build Path创建Scala Library的项目时,会自动添加Scala Nature - 至少我这样做了。但是,情况似乎并非如此。如果这是一个设计选择,它可能已经完成,因为Scala Project Wizard通常被指定为项目的依赖项,而IDE添加的版本是一个不同的版本,导致令人惊讶的行为以及IDE警告那种效果。如果这是理由,则向导应提示用户决定并提供智能推荐。

答案 1 :(得分:0)

您使用的是 sbt 吗?使用“sbt eclipse”时可能会出现此错误。解决方案是升级sbteclipse 插件。它适用于最新版本(绝对是4.0.0)。

旧版本插件的问题在于它不会在.classpath文件中生成“org.scala-ide.sdt.launching.SCALA_CONTAINER”。