Je souhaite mapper les caractères d'une chaîne, mais des erreurs d'exécution se produisent.
Exemple:
object Hello {
def hello(c: Char) {
print(c)
}
def main(args: Array[String]) {
"Hello World!".map(hello)
}
}
Trace:
scalac Hello.scala
Java Hello
Exception in thread "main" Java.lang.NoClassDefFoundError: scala/LowPriorityImplicits
at Hello.main(Hello.scala)
Caused by: Java.lang.ClassNotFoundException: scala.LowPriorityImplicits
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:202)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:190)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:306)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:301)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:247)
... 1 more
make: *** [test] Error 1
Je pense que votre problème est que la bibliothèque scala ne se trouve pas dans votre classpath d’exécution. vous devez ajouter manuellement.
Si vous utilisez des outils tels que maven ou sbt, peut-être que la dépendance est marquée comme fournie plutôt que compilée.
Si vous n'utilisez pas ces outils, ajoutez "scala-library.jar" à votre répertoire de bibliothèque.
Voir aussi ce problème parce que je n'ai pas la bonne version de Scala. Pour ceux qui utilisent IntelliJ, vous pouvez ajouter/modifier le SDK scala sous Fichier > Structures de projet > Bibliothèques globales :
Si vous compilez et exécutez votre projet en ligne de commande, assurez-vous également d'avoir la bonne version de Scala. par exemple.:
Vérifiez la version de Scala installée:
$ scala -version
Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL
Cochez build.sbt pour avoir la bonne version de Scala:
scalaVersion := "2.11.8"