Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why do I get `java.lang.NoClassDefFoundError: scala/Function1` when I run my code in ScalaIDE?

Here is a simple test I'm using to invoke a Scala method from Java:

public static void main(String args[]) {   java.util.Map<String, java.util.List<String>> rec = news.recommend.DriverObj.runTest();        System.out.println(rec.toString()); } 

Here is the definition of the Scala method:

def runTest: java.util.Map[String, java.util.List[String]] = {   new java.util.HashMap[String, java.util.List[String]] } 

But it throws an error:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Function1     at news.recommend.DriverObj.runTest(DriverObj.scala) 

What should I do to make this running smoothly?

Update : I'm running it via Eclipse and my build path contains :

enter image description here

So Scala library should be found ?

like image 728
blue-sky Avatar asked Jun 25 '14 18:06

blue-sky


2 Answers

adding the Scala dependency to the maven build can fix the issue :

<dependency>     <groupId>org.scala-lang</groupId>     <artifactId>scala-library</artifactId>     <version>2.10.3</version> </dependency> 
like image 197
Riduidel Avatar answered Oct 03 '22 22:10

Riduidel


As for me, in the configuration of "Run/Debug configurations" [idealJ]

remember to choose the "Include dependencies with "Provided" scope"

like image 28
Kuang Wenyi Avatar answered Oct 03 '22 23:10

Kuang Wenyi