2013-01-19 23 views
13

Bir dizedeki karakterlerin üzerinde eşlemek istiyorum, ancak çalışma zamanı hataları alıyorum.Bu kodu çalıştırmaya çalışırken neden java.lang.NoClassDefFoundError olsun?

Örnek:

object Hello { 
    def hello(c: Char) { 
     print(c) 
    } 

    def main(args: Array[String]) { 
     "Hello World!".map(hello) 
    } 
} 

İz:

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 
+6

O haritalama ile ilgisi yoktur, sen ile ilgili sorunlar vardı sınıf yolun. Kodunuzu java komutuyla çalıştırıyorsanız, scala-library.jar dosyasını cp'ye ekleyin - java scala ve bitlerle ilgili hiçbir şey bilmiyor. Alternatif olarak "scala" komutuyla kod çalıştır. –

+6

Programınızı 'java Hello' yerine' scala Hello' ile çalıştırın. – Jesper

+0

@Jesper Teşekkürler! – mcandre

cevap

7

Ben senin sorunun o scala kütüphanesi çalışma zamanı sınıf yolunda olmadığını düşünüyorum. manuel olarak manuel olarak eklemelisiniz.

Eğer maven veya sbt gibi araçlar kullanıyorsanız, belki de bağımlılık bunun yerine derlenmiş olarak işaretlenir. Bu araçları kullanmıyorsanız ben Scala doğru sürümünü yok çünkü

Ayrıca bu sorunu görerek Kitaplık dizininin

0

için "Scala-library.jar" ekleyin. Eğer derleme ve komut satırında Projenizi çalıştırıyorsanız

enter image description here

: intellij kullanarak olanlar, ekleyebilir için/Dosya altında>Proje Yapıları>Küresel Kütüphaneler scala SDK değiştirmek Scala'nın doğru sürümünü de yüklediğinizden emin olun. örneğin: Scala sürümü yüklü

Kontrol:

$ scala -version 
Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL 

Scala doğru sürümünü sahip olmak build.sbt edin:

scalaVersion := "2.11.8" 
İlgili konular