У меня есть приложение hadoop. Я пишу java-программу, которая нуждается в пакете org.json.jar, а также hasoop-core.jar. Я компилирую этот исходный файл со следующей командой linux.Как скомпилировать исходный файл 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 не найден.
Так что, интересно, что-то не так в моей команде компиляции? Как скомпилировать исходный файл java с этими двумя пакетами jar?
Спасибо. Не могли бы вы рассказать мне, как это сделать? – Duran
@ user3023526 Из вашего примера вы делаете * seem *, чтобы иметь банку в своем пути к классам. Ваш HADOOP_HOME правильно указывает? –
Да. Потому что я запустил WordCount, используя ту же команду без org.json.jar. Он работает правильно. – Duran