Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用多个外部jar编译java源文件?_Java_Json_Hadoop - Fatal编程技术网

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

如何使用多个外部jar编译java源文件?,java,json,hadoop,Java,Json,Hadoop,我有一个hadoop应用程序。我编写了一个java程序,它需要org.json.jar包和hadoop-core.jar。我使用以下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/ . 它编译成功。但是

我有一个hadoop应用程序。我编写了一个java程序,它需要org.json.jar包和hadoop-core.jar。我使用以下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示例。)

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


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

我想您的类路径上没有jar。将它们添加到类路径。

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

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


请确保您遵守了关于如何实际编写MapReduce应用程序的说明。

谢谢。你能告诉我怎么做吗?@user3023526从你的例子来看,你的类路径中似乎有jar。你的
HADOOP\u主页
指向正确吗?是的。因为我在没有org.json.jar的情况下使用相同的命令运行WordCount。它运行正常。尝试将类添加到
java
类路径中,作为
java-cp/your/class/path
,看看是否有帮助。无论您对
javac
拥有什么样的类路径,都要为
java
添加它,但我希望作业在hadoop集群上运行。怎么做?
hadoop jar q3.jar MainClassName /input /output