Исключение NoClassDefFoundError

1

У меня возникла проблема с использованием моего внешнего файла jar, даже если я правильно помещаю его в путь класса.

Мой внешний файл jar находится в диске D: и мой путь к классу - "C:\Program Files\Java \jdk1.7.0_51\bin; D:\webcam-capture-0.3.10-RC6.jar; C:\Program Files\Java\jdk1.7.0_51\lib;" поэтому, пожалуйста, помогите мне решить проблему. Ниже мой код:

import com.github.sarxos.webcam.Webcam;
import javax.swing.JOptionPane;

public class DetectWebcamExample  {

    public static void main(String[] args) {
        try {
            Webcam webcam = Webcam.getDefault();
            if (webcam != null) {
                    System.out.println("Webcam: " + webcam.getName());
            } else {
                    System.out.println("No webcam detected");
            }

        } catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }
    }            
}

деталь экспозиции

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at com.github.sarxos.webcam.Webcam.<clinit>(Webcam.java:40)
    at test.Test.main(Test.java:20)
        Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 2 more
Java Result: 1

я изменить путь с помощью "C:\Program Files\Java\jdk1.7.0_51\bin;" и classpath "D:\webcam-capture-0.3.10-RC6.jar ;." но исключение все еще существует

Как я могу решить эту проблему?

Теги:

1 ответ

1

Java нашел com.github.sarxos.webcam.Webcam чтобы вы успешно добавили JAR в com.github.sarxos.webcam.Webcam к классам.

Что происходит сейчас, так это то, что Webcam пытается использовать класс log4j, а не в classpath.

Это обычное дело - пакет A нуждается в пакете B; пакет B нуждается в пакете C; и вы можете потратить некоторое время на поиск JAR для выполнения цепочек зависимостей.

В этом случае вам понадобятся два логарифма log4j - log4j-api и один из вариантов реализации лог4jj. Подробнее см. на веб-странице log4j.

Если поиск банов зависимостей начинает становиться глупым, подумайте о том, чтобы использовать Maven или Ivy для обработки ваших зависимостей для вас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню