如何使用多个外部jar编译java源文件?

时间:2013-11-23 18:12:53

标签: java json hadoop

我有一个hadoop应用程序。我编写了一个需要org.json.jar包以及hadoop-core.jar的java程序。我使用以下linux命令编译此源文件。

mkdir q3_classes
javac -classpath ${HADOOP_HOME}/hadoop-core.jar:${HADOOP_HOME}/org.json-20120521.jar -d q3_classes ETLQ3.java
jar -cvf q3.jar -C q3_classes/ .

它成功编译。但是当我使用以下命令运行此程序时。 (相同的命令成功应用于WordCount示例。)

hadoop jar q3.jar MainClassName /input /output

抛出ClassNotFound异常。找不到org.json.object类。

所以我想知道我的编译命令有什么问题吗?如何使用这两个jar包编译java源文件?

2 个答案:

答案 0 :(得分:0)

我猜你的类路径上没有JAR。将它们添加到类路径中。

答案 1 :(得分:0)

您可能需要将org.json-20120521.jar jar发送到群集的所有节点。尝试使用--libjars选项

hadoop jar q3.jar MainClassName / input / output --libJars org.json-20120521.jar

确保按照here in the edit part说明如何实际编写MapReduce应用程序。