java.lang.NoClassDefFoundError: scala/Product$class [英] java.lang.NoClassDefFoundError: scala/Product$class
问题描述
我是 Scala 的新手,我正在尝试一些示例代码进行测试.但是,当我运行测试代码时,我遇到了一些问题.当我运行测试时,出现错误
I am new to scala and I am trying out few sample codes for testing. However I am facing some issues when I run the test code. When I run the test, I am getting an error
[trace] Stack trace suppressed: run last test:executeTests for the full output.
[error] (test:executeTests) java.lang.NoClassDefFoundError: scala/Product$class
[error] Total time: 3 s, completed Feb 27, 2017 6:57:15 PM
我的代码如下
FilterChecks.scala
FilterChecks.scala
class filterChecks extends FlatSpec {
"Filter checker passed a filename which is present in directory" should "return file name" in {
val matchingFileName = new FileObject("match")
val listOfFiles = List(new FileObject("random"), matchingFileName)
val matchedFiles = new FilterChecker("match").findMatchedFiles(listOfFiles)
assert(matchedFiles == List(matchingFileName))
}
}
FilterChecker 类
FilterChecker Class
class FilterChecker(filter : String) {
def matches(content : String) = content.contains(filter);
def findMatchedFiles(fileObjects : List[FileObject]) = {
for(fileObject <- fileObjects if(matches(fileObject.name)))
yield fileObject
}
}
文件对象
class FileObject(val name: String) {
}
构建文件如下:
name := "testScalaProject"
version := "1.0"
scalaVersion := "2.12.1"
// https://mvnrepository.com/artifact/org.scala-js/scalajs-test-interface_2.12
libraryDependencies ++= Seq("org.scala-js" % "scalajs-test-interface_2.12" % "0.6.14",
"org.scalatest" % "scalatest_2.11" % "2.2.5",
"com.novocode" % "junit-interface" % "0.11",
"org.scala-lang" % "scala-library" % "2.12.1")
有人能帮我找出问题吗.提前致谢
Could someone help me out in finding the issue . Thanks in advance
推荐答案
您的 sbt 构建文件不正确.您的 Scala 版本是 2.12.x,但您使用的是在 2.11 版 Scala 中编译的库.使用下面显示的 sbt 设置
your sbt build file is not right. your scala version is 2.12.x but you are using libraries compiled in scala version 2.11. use the sbt settings shown below
注意:我更改了 scalatest 的版本,因为 2.12 版本的 scala 不再支持 2.x 版本
note: I changed the version of scalatest as 2.x versions are no longer supported for 2.12 version of scala
scalaVersion := "2.12.1"
libraryDependencies ++= Seq(
"org.scala-js" %% "scalajs-test-interface" % "0.6.14",
"org.scalatest" %% "scalatest" % "3.0.1", //version changed as these the only versions supported by 2.12
"com.novocode" % "junit-interface" % "0.11",
"org.scala-lang" % "scala-library" % scalaVersion.value
)
记得在你的 sbt 控制台中执行 reload
、clean
和 compile
以开始清理编译
remember to do reload
, clean
and compile
in your sbt console to start clean compile
这篇关于java.lang.NoClassDefFoundError: scala/Product$class的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!