Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.NoClassDefFoundError: scala/Product$class

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 

My code is as follows

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 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   }  } 

FileObject

class FileObject(val name: String) {  } 

The build file is as follows:

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

like image 411
Amogh Huilgol Avatar asked Feb 28 '17 00:02

Amogh Huilgol


1 Answers

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

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 ) 

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

like image 190
rogue-one Avatar answered Oct 08 '22 19:10

rogue-one