web-dev-qa-db-fra.com

Pourquoi est-ce que j'obtiens `Java.lang.NoClassDefFoundError: scala / Function1` lorsque j'exécute mon code dans ScalaIDE?

Voici un test simple que j'utilise pour invoquer une méthode Scala de 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());
}

Voici la définition de la méthode Scala:

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

Mais cela jette une erreur:

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

Que dois-je faire pour que tout se passe bien?

Mise à jour: je l'exécute via Eclipse et mon chemin de build contient:

enter image description here

Donc Scala doit-elle être trouvée?

27
blue-sky

l'ajout de la dépendance Scala à la génération maven peut résoudre le problème:

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

Quant à moi, dans la configuration des "Configurations Run/Debug" [idealJ]

n'oubliez pas de choisir les "Inclure les dépendances avec la portée" fournie "

2
Kuang Wenyi