文字列内の文字をマッピングしたいのですが、ランタイムエラーが発生します。
例:
object Hello {
def hello(c: Char) {
print(c)
}
def main(args: Array[String]) {
"Hello World!".map(hello)
}
}
痕跡:
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
あなたの問題は、scalaライブラリがランタイムクラスパスにないことだと思います。手動で手動で追加する必要があります。
Mavenやsbtなどのツールを使用している場合は、依存関係がコンパイル済みではなく提供済みとしてマークされている可能性があります。
これらのツールを使用していない場合は、ライブラリディレクトリに「scala-library.jar」を追加してください
また、適切なバージョンのScalaがないため、この問題が発生しています。 IntelliJを使用している場合は、scala SDK underFile>プロジェクト構造>グローバルライブラリ:
コマンドラインでプロジェクトをコンパイルして実行している場合は、正しいバージョンのScalaもインストールされていることを確認してください。例:
Scalaインストールされているバージョンを確認してください:
$ scala -version
Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL
build.sbtをチェックして、正しいバージョンのScalaを入手してください。
scalaVersion := "2.11.8"