即使我把它放在类路径中,我也无法使用外部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;”修改路径和类路径“D:\ webcam-capture-0.3.10-RC6.jar;。”但例外仍然存在
我该如何解决这个问题?
答案 0 :(得分:1)
Java已找到com.github.sarxos.webcam.Webcam
,因此您已成功将该JAR添加到类路径中。
现在发生的事情是Webcam
正在尝试使用log4j
类,并且不在类路径上。
这很常见 - 包A需要包B;包B需要包C;你可以花一些时间找到JAR来实现依赖链。
在这种情况下,您将需要两个log4j jar - log4j-api和一个选择的log4j实现jar。有关详细信息,请参阅log4j网页。
如果寻找依赖性jar开始变得愚蠢,请考虑使用Maven或Ivy为您处理依赖项。