2014-05-02 100 views
-1

OSX上安裝Java,斯卡拉燙傷後,我有以下錯誤,當我嘗試運行WordCountJob文件燙傷的NoClassDefFoundError

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

compiling 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/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/commons-logging-1.1.1.jar:/var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/maven/zookeeper-3.3.4.jar -d /var/folders/5q/7bth9vvd2tv8q57f737f6jxm0000gn/T/script-build WordCountJob.scala Exception in thread "main" java.lang.NoClassDefFoundError: scala/tools/nsc/Main Caused by: java.lang.ClassNotFoundException: scala.tools.nsc.Main 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)

沒有任何人知道如何解決這個問題?

回答

0

它無法找到Scala編譯器。您需要設置SCALA_HOME和目錄添加./bin到PATH:

export SCALA_HOME=<where you installed scala> 
export PATH=$PATH:$SCALA_HOME/bin 
+0

我已將我的stb程序集和scald.rb錯誤放在上面的註釋中 –

+0

您也可以嘗試使用不同的路徑:僅使用SBT。看看https://github.com/vitalyg/Strata2014ScaldingTutorial。可能您需要更新項目中的燙印版本號/ Dependencies.scala –

+0

也可以嘗試./scald.rb - 在此類情況繼續時進行清理。有時緩存的類會損壞。 –

0

在一些論壇上我看到,在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" 

根據Installing Java on 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 

在/燙我想運行 - > 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 

它看起來像一個任務不可能有燙傷在本地模式下運行。