java.lang.NoClassDefFoundError:org / apache / commons / logging / LogFactory

时间:2013-10-01 20:36:30

标签: eclipse hadoop cygwin

我使用cygwin在Windows中安装Hadoop-0.20.2。如果我跑

 $ 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"

请帮助我解决问题

1 个答案:

答案 0 :(得分:0)

如果您使用此lib org.apache.commons.logging.LogFactory,那么您应该根据类@coding

初始化日志

示例

private static Log LOG = LogFactory.getLog(ClassName.class);

在编译时它有.class扩展名你应该确定是否创建了该类,否则它会给出异常,我想

检查类路径

问题-java.lang.NoClassDefFoundError

根本原因:环境变量部分

中设置的Java路径不正确

解决方案:设置正确的JAVA_HOME路径

步骤 - &gt;环境变量设置(我的Comp-Right Click - &gt; Properties-&gt; Env Variable-&gt; Advance Tab - &gt; Variable)

创建新的JAVA_HOME环境变量。

JAVA_HOME 。; C:\ Program Files(x86)\ Java \ jdk1.6.0_14

在PATH变量部分设置JAVA_HOME变量。

PATH%JAVA_HOME%\ bin

在CLASSPATH Variable

中设置JAVA_HOME变量

CLASSPATH%JAVA_HOME%\ jre \ lib

重启系统

验证所有变量

echo%CLASSPATH%

echo%JAVA_HOME%

echo%PATH%

编译&amp;运行程序