blue-sky
blue-sky

Reputation: 53896

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 ?

Upvotes: 31

Views: 51209

Answers (2)

Kuang Wenyi
Kuang Wenyi

Reputation: 311

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

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

Upvotes: 21

Riduidel
Riduidel

Reputation: 22300

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>

Upvotes: 24

Related Questions