解决Window环境下启动Hadoop时出现的 java.lang.NoClassDefFoundError: org/apache/hadoop/util/P
在Window下启动Hadoop-0.21.0版本时,会出现下面这样的错误提示:
?1
?java.lang.NoClassDefFoundError:?org
/
apache
/
hadoop
/
util
/
PlatformName
?2
?Caused?by:?java.lang.ClassNotFoundException:?org.apache.hadoop.util.PlatformName
?3
?
?4
?????????at?java.net.URLClassLoader$
1
.run(URLClassLoader.java:
202
)
?5
?????????at?java.security.AccessController.doPrivileged(Native?Method)
?6
?????????at?java.net.URLClassLoader.findClass(URLClassLoader.java:
190
)
?7
?????????at?java.lang.ClassLoader.loadClass(ClassLoader.java:
307
)
?8
?????????at?sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:
301
)
?9
?????????at?java.lang.ClassLoader.loadClass(ClassLoader.java:
248
)
10
?Could?not?find?the?main?
class
:?org.apache.hadoop.util.PlatformName.??Program?wil
11
?l?exit.
经过不断的查找原因和尝试,终于有了解决这个错误的办法,只需要将${HADOOP_HOME}/bin/hadoop-config.sh文件中的第190行的一下的内容
JAVA_PLATFORM
=
`CLASSPATH
=
${CLASSPATH}?${JAVA}?
-
Xmx32m?${HADOOP_JAVA_PLATFORM_OPTS}
?org.apache.hadoop.util.PlatformName?
|
?sed?
-
e?
"
s/?/_/g
"
`
修改成以下的内容即可
JAVA_PLATFORM
=
`CLASSPATH
=
${CLASSPATH}?${JAVA}?