Trove jar THashMap класс не найден исключение
Я хочу использовать jar Trove-1.0.2 для карт в моем проекте java. Я использую Eclipse IDE. Я добавил Trove jar, используя "Добавить внешние jar" в пути сборки, но все же я получаю ClassNotFoundException.
Но класс gnu.trove.THashMap присутствует в библиотеке, когда я проверял.
Error: java.lang.ClassNotFoundException: gnu.trove.THashMap
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at com.a.VCLReduce0.reduce(VCLReduce0.java:38)
at com.a.VCLReduce0.reduce(VCLReduce0.java:1)
at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:519)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:420)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
at org.apache.hadoop.mapred.Child.main(Child.java:249)
2 ответа
Чтобы запустить задание на hadoop, вам нужен отдельный файл jar с зависимостями, либо распакованный в jar, либо указанный в манифесте.
Посмотрите на этот вопрос некоторые советы о запуске заданий hadoop из eclipse: Запустите задание mapreduce из eclipse
они также упоминают эту статью, кажется, что у нее есть хорошая информация о настройке затмения: http://www.mapr.com/blog/basic-notes-on-configuring-eclipse-as-a-hadoop-development-environment-for-mapr
Проверьте ваш путь к классу Runtime в Eclipse (хотя библиотека действительно должна быть там по умолчанию). Я полагаю, вы запускаете его в Eclipse с помощью меню Run.
- Щелкните правой кнопкой мыши по вашему основному классу.
- Выберите "Запуск от имени -> Выполнить настройки..."
- Разверните Java-приложение в левой части диалогового окна. Если вы видите свой основной класс в списке, выберите его, в противном случае выберите опцию "New Launch Config" и убедитесь, что он отображает имя вашего основного класса в поле "Main Class".
- Перейдите на вкладку ClassPath и посмотрите, указан ли ваш файл Trove.jar. Если нет, то добавьте его и запустите приложение.
Если он находится на пути к классам, возможно, что сам Trove-1.0.2 jar имеет зависимости, которые вы не добавили в путь сборки, хотя я проверял это с Maven Central, и, похоже, это не так.