我有一個hadoop應用程序。我寫了一個java程序,它需要org.json.jar包以及hadoop-core.jar。我用下面的linux命令編譯這個源文件。如何用多個外部jar編譯java源文件?
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源文件?
謝謝。你能告訴我怎麼做? – Duran
@ user3023526在你的例子中,你似乎*在你的類路徑中有jar。你的'HADOOP_HOME'指向正確嗎? –
是的。因爲我在沒有org.json.jar的情況下使用相同的命令運行WordCount。它運行正常。 – Duran