我正在使用OpenCV 2.4.9,JavaCV 0.7,JAVA版本8和Eclipse IDE开展Face Recognition Project ...我正在不断地获得这些异常。下面的代码中是否有问题?这不是我的complette代码...... 请有人尽快帮助我......
import com.googlecode.javacpp.Loader;
import com.googlecode.javacv.cpp.opencv_objdetect;
Loader.load(opencv_objdetect.class);
例外:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_objdetect in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:711)
at com.googlecode.javacpp.Loader.load(Loader.java:586)
at com.googlecode.javacpp.Loader.load(Loader.java:540)
at com.googlecode.javacv.cpp.opencv_objdetect.<clinit>(opencv_objdetect.java:91)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.googlecode.javacpp.Loader.load(Loader.java:561)
at FaceRecognizer.<init>(FaceRecognizer.java:56)
at FaceRecognizer.main(FaceRecognizer.java:112)
Caused by: java.lang.UnsatisfiedLinkError: C:\Users\XYX\AppData\Local\Temp\javacpp183187286948746\jniopencv_objdetect.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:700)
... 8 more
答案 0 :(得分:1)
This page介绍了如何运行OpenCV Java示例。你应该做两件事:
您需要调用System.LoadLibrary指定它使用的OpenCV DLL
的System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
确保DLL位于JVM可以找到的位置。如果这样做,有几种方法。我不使用Eclipse,但this似乎给出了一个很好的解释。或者,一个简单的小工具就是将DLL放到windows \ system32目录中
最后,如果您运行64位JVM但尝试使用32位DLL,则可能会出现问题。如果您仍然遇到问题,请确保使用匹配的JVM和DLL。
答案 1 :(得分:0)
看起来您在项目中使用的一个java库正在使用使用dll文件的jni调用。您是否正确安装了库?看起来它被称为opencv或与jniopencv_objdetect.dll相关的东西