ошпаривание NoClassDefFoundError

после установки java, scala scalding на OSX у меня возникает следующая ошибка, когда я пытаюсь запустить файл WordCountJob

$ scripts/scald.rb --local  WordCountJob.scala --input someInputfile.txt --output ./someOutputFile.tsv

компиляция WordCountJob.scala scalac -classpath /Users/me/.sbt/boot/scala-2.9.3/lib/scala-library.jar:/Drive/me/Coding/scalding/scalding-core/target/scala-2.9. 3/scalding-core-assembly-0.9.1.jar:/var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/hadoop-core-1.1.2.jar:/var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/ commons-codec-1.8.jar:/var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/commons-configuration-1.9.jar:/var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/jackson-asl-0.9.5. jar:/var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/jackson-mapper-asl-1.9.13.jar:/var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/commons-lang-2.6.jar:/var /folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/slf4j-log4j12-1.6.6.jar:/var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/log4j-1.2.15.jar:/var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn /T/maven/commons-httpclient-3.1.jar:/var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/commons-cli-1.2.jar:/var/folders/5q/7bth 9vvd2tv8q57f737f6jxm0000gn/T/maven/commons-logging-1.1.1.jar:/var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/zookeeper-3.3.4.jar -d /var/folders/5q/7bth000gvjx7bth3q567fx3tv8q567f -build WordCountJob.scala Исключение в потоке "main" java.lang.NoClassDefFoundError: scala/tools/nsc/Main Причина: java.lang.ClassNotFoundException: scala.tools.nsc.Main at java.net.URLClassLoader$1.run( URLClassLoader.java:202) в java.security.AccessController.doPrivileged(собственный метод) в java.net.URLClassLoader.findClass(URLClassLoader.java:190) в java.lang.ClassLoader.loadClass(ClassLoader.java:306) в солнце .misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) в java.lang.ClassLoader.loadClass(ClassLoader.java:247)

кто-нибудь знает, как это решить?


person john Stilkowicz    schedule 02.05.2014    source источник


Ответы (2)


Он не может найти компилятор Scala. Вам нужно установить SCALA_HOME и добавить каталог ./bin в ваш PATH:

 export SCALA_HOME=<where you installed scala>
 export PATH=$PATH:$SCALA_HOME/bin
person Sasha O    schedule 02.05.2014
comment
я поместил свою сборку stb и ошибки scald.rb в комментарий выше - person john Stilkowicz; 02.05.2014
comment
Вы также можете попробовать пойти другим путем: использовать только SBT. Посмотрите github.com/vitalyg/Strata2014ScaldingTutorial . Возможно, вам нужно обновить номер версии scala в файле project/Dependencies.scala. - person Sasha O; 03.05.2014
comment
также попробуйте ./scald.rb --clean, когда происходит что-то подобное. Иногда кешированные классы повреждены. - person Oscar Boykin; 02.08.2014

на некоторых форумах я видел, что в JRE 7 этой ошибки нет, поэтому я обновился до jre 7.

$ java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)

единственный способ сделать его активным

export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"

согласно Установка Java в OS X 10.9 (Mavericks)< /а>

$ echo $JAVA_HOME
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

Я добавил следующие строки в ~/.profile

export JAVA_HOME=$(/usr/libexec/java_home)
export SCALA_HOME="/usr/local/Cellar/scala/2.9.3"
export PATH=$PATH:$SCALA_HOME/bin

В /scalding я хочу запустить -> сборку sbt и получаю следующую ошибку

[info] Passed: Total 51, Failed 0, Errors 0, Passed 51
[info] Checking every *.class/*.jar file's SHA-1.
[info] Merging files...
[warn] Merging 'META-INF/MANIFEST.MF' with strategy 'discard'
[warn] Strategy 'discard' was applied to a file
[info] Assembly up to date: /Drive/me/Coding/scalding/scalding-date/target/scala-2.9.3/scalding-date-assembly-0.9.1.jar
[error] (maple/compile:compile) javac returned nonzero exit code
[error] Total time: 29 s, completed May 2, 2014 8:27:30 PM

При попытке запустить WordCountJob у меня возникает следующая ошибка

$ scripts/scald.rb --local WordCountJob.scala --input someInputfile.txt --output ./someOutputFile.tsv
/Drive/me/Coding/scalding/scalding-core/target/scala-2.9.3/scalding-core-assembly-0.9.1.jar is missing, you probably need to run sbt assembly

Выглядит невыполнимой миссия запускать ошпаривание в локальном режиме.

person john Stilkowicz    schedule 02.05.2014