web-dev-qa-db-ger.com

Warum erhalte ich "Java.lang.NoClassDefFoundError: scala / Function1", wenn ich meinen Code in ScalaIDE ausführe?

Hier ist ein einfacher Test, den ich verwende, um eine Scala -Methode aus Java aufzurufen:

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

Hier ist 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 gibt einen Fehler:

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

Was soll ich tun, damit es reibungslos läuft?

Update: Ich führe es über Eclipse aus und mein Build-Pfad enthält:

enter image description here

Also sollte Scala library gefunden werden?

27
blue-sky

das Hinzufügen der Scala Abhängigkeit zum Maven Build kann das Problem beheben:

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-library</artifactId>
    <version>2.10.3</version>
</dependency>
16
Riduidel

Was mich betrifft, in der Konfiguration von "Run/Debug-Konfigurationen" [idealJ]

denken Sie daran, den Bereich "Abhängigkeiten mit" Bereitgestelltem "einbeziehen" zu wählen.

2
Kuang Wenyi