2014-06-25 9 views
22

Oto prosty test używam wywołać metodę Scala z Java:Dlaczego otrzymuję komunikat `java.lang.NoClassDefFoundError: scala/Function1`, gdy uruchamiam mój kod w ScalaIDE?

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

Oto definicja metody Scala:

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

Ale to zgłasza błąd:

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

Co należy zrobić, aby działało płynnie?

Aktualizacja: biegnę go za pomocą Eclipse i mój build path zawiera:

enter image description here

Więc biblioteki Scala powinno się znaleźć?

+0

co jest na ścieżce klasy, kiedy go uruchomić? –

+3

Wygląda na to, że nie dodajesz słoika do biblioteki scala w ścieżce klas. 'scala' zawiera go automatycznie,' java' nie. – wingedsubmariner

+0

@Dave Newton, zobacz aktualizację pytania –

Odpowiedz

13

dodając zależność Scala do kompilacji maven może rozwiązać ten problem:

<dependency> 
    <groupId>org.scala-lang</groupId> 
    <artifactId>scala-library</artifactId> 
    <version>2.10.3</version> 
</dependency> 
Powiązane problemy