2014-06-25 4 views
22

Hier ist ein einfacher Test ich eine Scala Methode von Java aufrufen bin mit:Warum bekomme ich `java.lang.NoClassDefFoundError: scala/Function1`, wenn ich meinen Code in ScalaIDE ausführe?

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

ist hier die Definition der Scala-Methode:

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

Aber es wirft einen Fehler:

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

Was soll ich tun, damit dies reibungslos funktioniert?

Update: Ich laufe es über Eclipse und meine Build-Pfad enthält:

enter image description here

So sollte Scala Bibliothek zu finden?

+0

Was auf Ihrem Classpath ist, wenn Sie es laufen? –

+3

Es sieht für mich so aus, als würden Sie das Jar für die Scala-Bibliothek im Klassenpfad nicht einschließen. 'scala' enthält es automatisch,' java' nicht. – wingedsubmariner

+0

@Dave Newton siehe Frage Update –

Antwort

13

die Scala Abhängigkeit zu dem Maven Build Zugabe kann das Problem beheben:

<dependency> 
    <groupId>org.scala-lang</groupId> 
    <artifactId>scala-library</artifactId> 
    <version>2.10.3</version> 
</dependency> 
Verwandte Themen