2013-10-01 96 views
0

我使用cygwin在Windows中安裝Hadoop-0.20.2。如果我運行java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory

$ bin/hadoop version 
Hadoop 0.20.2 
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707 
Compiled by chrisdo on Fri Feb 19 08:07:34 UTC 2010 

它工作正常,但如果我運行

namenode -format

它會返回錯誤,如下面

$ bin/hadoop namenode -format 
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 
     at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:139) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.<clinit>(NameNode.java:101) 
Exception in thread "main" 

請幫我解決這個問題

+0

您可以發佈'斌/ Hadoop的classpath'(回你原來的問題,而不是作爲一個評論)的結果? –

+0

@ChrisWhite bin/hadoop classpath java.lang。NoClassDefFoundError:classpath 線程「main」中的異常 – Siddhu

回答

0

如果您使用這個lib org.apache.commons.logging.LogFactory,那麼你應該根據類@c初始化日誌oding

私有靜態登錄LOG = LogFactory.getLog(ClassName.class);

它.class擴展編譯時,你應該確保該類是否建立或不否則它會給出一個例外,我想

檢查類路徑過於

問題,java.lang中。 NoClassDefFoundError的

根本原因:不正確的Java路徑在環境變量設置節

解決方案:設置正確的JAVA_HOME路徑

步驟 - >環境變量設置(我的壓縮 - 右鍵 - >屬性 - >信封可變>高級選項卡 - >變量)

新建JAVA_HOME環境變量。

JAVA_HOME ; C:\程序文件(x86)\爪哇\在路徑變量部jdk1.6.0_14

集JAVA_HOME變量。

PATH%JAVA_HOME%\ bin中

設置JAVA_HOME變量CLASSPATH變量

CLASSPATH%JAVA_HOME%\ JRE \ lib中

重啓系統

驗證所有變量

回聲%CLASSPATH%

回聲%JAVA_HOME%

回聲%PATH%

編譯&運行程序

+0

你甚至讀過這個問題嗎?他不寫任何代碼。 – user93353

+0

@ user93353這就是我最後提到的原因檢查類路徑,現在我編輯瞭如何檢查類路徑的步驟。 – Yasa