Reputation: 53896
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 :
So Scala library should be found ?
Upvotes: 31
Views: 51209
Reputation: 311
As for me, in the configuration of "Run/Debug configurations" [idealJ]
remember to choose the "Include dependencies with "Provided" scope"
Upvotes: 21
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