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.

  1. Щелкните правой кнопкой мыши по вашему основному классу.
  2. Выберите "Запуск от имени -> Выполнить настройки..."
  3. Разверните Java-приложение в левой части диалогового окна. Если вы видите свой основной класс в списке, выберите его, в противном случае выберите опцию "New Launch Config" и убедитесь, что он отображает имя вашего основного класса в поле "Main Class".
  4. Перейдите на вкладку ClassPath и посмотрите, указан ли ваш файл Trove.jar. Если нет, то добавьте его и запустите приложение.

Если он находится на пути к классам, возможно, что сам Trove-1.0.2 jar имеет зависимости, которые вы не добавили в путь сборки, хотя я проверял это с Maven Central, и, похоже, это не так.

Другие вопросы по тегам