因此,在阅读了许多关于so的文章并修改了一些java基础知识之后,我仍然发现了这个错误
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/io/Writable
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
at java.lang.Class.getMethod0(Class.java:2694)
at java.lang.Class.getMethod(Class.java:1622)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
我知道 java.lang.NoClassDefFoundError
以及 ClassNotFoundException
在java中,并研究了通常导致它的原因。简而言之,这是因为某些类在运行时对程序不可用,但在编译时可用。因此我没有编译时错误。
我添加了两个类路径,一个是 commons-logging-1.1.3.jar
另一个是 hadoop-core.*jar
. 我非常确信类路径是正确的。
这是我程序中的导入
import java.io.*;
import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.SequenceFile.*;
import org.apache.hadoop.io.SequenceFile.Writer;
import org.apache.hadoop.io.*;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.*;
1条答案
按热度按时间vx6bjr1n1#
您需要用java代码创建一个jar,如下所示:
按以下方式运行jar:
有关jar命令的描述,请参见hadoop的文档页。