java.lang.NoClassDefFoundError: scala/Product$class [英] java.lang.NoClassDefFoundError: scala/Product$class

查看:46
本文介绍了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 控制台中执行 reloadcleancompile 以开始清理编译

remember to do reload, clean and compile in your sbt console to start clean compile

这篇关于java.lang.NoClassDefFoundError: scala/Product$class的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆