异常“找不到依赖库”使用javacv

时间:2013-03-17 13:17:13

标签: eclipse opencv javacv

我尝试使用JavaCV在eclipse中实现一个程序。以下是示例代码

import static com.googlecode.javacv.cpp.opencv_core.*;
import static com.googlecode.javacv.cpp.opencv_imgproc.*;
import static com.googlecode.javacv.cpp.opencv_highgui.*;
public class JavaCVProj01 
         {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        IplImage img = cvLoadImage("Paris.jpeg");
        cvShowImage("Paris",img);
        cvSmooth(img,img,CV_GAUSSIAN,13);
        cvShowImage("BlurImage",img);

        cvWaitKey();
        cvReleaseImage(img);

    }

}

当我运行程序时,我得到一个异常

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Bhavana\AppData\Local\Temp\javacpp34629596157210\jniopencv_core.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:566)
    at com.googlecode.javacpp.Loader.load(Loader.java:489)
    at com.googlecode.javacpp.Loader.load(Loader.java:431)
    at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at com.googlecode.javacpp.Loader.load(Loader.java:453)
    at com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:97)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at com.googlecode.javacpp.Loader.load(Loader.java:453)
    at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:85)
    at demo.main(demo.java:13)
Caused by: java.lang.UnsatisfiedLinkError: no opencv_core244 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:593)
    at com.googlecode.javacpp.Loader.load(Loader.java:481)
    ... 11 more

我也为环境变量提供了正确的路径。 我还从javacv-bin添加了外部Jar文件。 我给的路径是 CLASSPATH d:\ OpenCV的\建设\ 86 \ VC10 \ LIB d:\ OpenCV的\建设\ COMMON \ TBB \ IA32 \ VC10 d:\的OpenCV \建立\ 86 \ VC10 \ staticlib

PATH d:\ OpenCV的\建设\ COMMON \ TBB \ IA32 \ VC10 d:\的OpenCV \建立\ 86 \ VC10 \ BIN

我该怎么办?我还要添加哪些依赖库?

4 个答案:

答案 0 :(得分:1)

只需将opencv目录复制到C:\驱动器即可解决此问题。与设置所有路径相比,这可能是最简单的方法。这在JavaCV文档的某处提到(现在找不到)。

答案 1 :(得分:1)

如果您的OpenCV版本与JavaCV-Bin不兼容,则会发生这些错误。

例如:

  • OpenCV 2.4.0和JAVA-BIN 0.2 =不兼容

  • OpenCV 2.4.3和JAVA-BIN 0.3 =兼容


确保在安装后重新启动

答案 2 :(得分:0)

你的PATH不应该是这样的:

D:\opencv\build\common\tbb\ia32\vc10 D:\opencv\build\x86\vc10\bin

但是像这样:

"D:\opencv\build\common\tbb\ia32\vc10";"D:\opencv\build\x86\vc10\bin"

(注意分号而不是空格)

同样适用于CLASSPATH!

答案 3 :(得分:0)

几乎same question我回答了。

您应该将opencv_java244.dll的路径添加到%PATH%环境变量。