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

问题描述 投票:0回答:1

我使用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

它工作正常,但如果我跑

目的 - 格式

它将返回如下错误

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

请帮我解决这个问题

eclipse hadoop cygwin
1个回答
0
投票

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

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

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

检查类路径

问题-java.lang.NoClassDefFoundError

根本原因:环境变量部分中设置的Java路径不正确

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

步骤 - >环境变量设置(我的Comp-右键单击 - >属性 - > Env变量 - >高级选项卡 - >变量)

创建新的JAVA_HOME环境变量。

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

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

PATH%JAVA_HOME%\ bin

在CLASSPATH变量中设置JAVA_HOME变量

CLASSPATH%JAVA_HOME%\ jre \ lib

重启系统

验证所有变量

echo%CLASSPATH%

echo%JAVA_HOME%

echo%PATH%

编译并运行程序

© www.soinside.com 2019 - 2024. All rights reserved.