How to remove this Exception "Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_objdetect in java.library.path"
How to remove this Exception "Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_objdetect in java.library.path"
我正在使用 OpenCV 2.4.9、JavaCV 0.7、JAVA 版本 8 和 Eclipse IDE 进行人脸识别项目...我不断收到这些异常..有没有以下代码有问题吗?这不是我的完整代码...
请有人尽快帮助我...
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
看起来您在项目中使用的 java 库之一正在使用使用 dll 文件的 jni 调用。您是否正确安装了库?看起来它被称为 opencv 或与 jniopencv_objdetect.dll
相关的东西
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。
我正在使用 OpenCV 2.4.9、JavaCV 0.7、JAVA 版本 8 和 Eclipse IDE 进行人脸识别项目...我不断收到这些异常..有没有以下代码有问题吗?这不是我的完整代码... 请有人尽快帮助我...
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
看起来您在项目中使用的 java 库之一正在使用使用 dll 文件的 jni 调用。您是否正确安装了库?看起来它被称为 opencv 或与 jniopencv_objdetect.dll
相关的东西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。