Я пытаюсь запустить задание hadoop на AWS Elastic Map Reduce с использованием файла JAR. Я использую библиотеку под названием EJML https://code.google.com/p/efficient-java-matrix-library/wiki/EjmlManual. Я включил его в свой проект как внешнюю библиотеку, используя проект -> Путь сборки -> Настроить путь сборки -> Добавить внешние банки в Eclipse. Когда я запускаю проект на своем локальном компьютере, все в порядке. Однако на AWS я получаю сообщение об ошибке,
Exception in thread "main" java.lang.NoClassDefFoundError: org/ejml/simple/SimpleBase
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.util.RunJar.main(RunJar.java:180)
Caused by: java.lang.ClassNotFoundException: org.ejml.simple.SimpleBase
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 3 more
Мне интересно, что может пойти не так. Мне пришлось перестроить библиотеку для Java 6 вместо 7, потому что hadoop на AWS работает только на Java 6. Буду признателен за любую помощь/предложения. Спасибо
РЕДАКТИРОВАТЬ: простой способ решить проблему в eclipse - выбрать параметр экспорта файла Runnable JAR при экспорте проекта в JAR.