【问题标题】:exception " cannot find dependent library" using javacv使用 javacv 的异常“找不到依赖库”
【发布时间】:2013-03-17 13:17:12
【问题描述】:

我尝试使用 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 文件。 我给的路径是 类路径 D:\opencv\build\x86\vc10\lib D:\opencv\build\common\tbb\ia32\vc10 D:\opencv\build\x86\vc10\staticlib

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

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

【问题讨论】:

    标签: eclipse opencv javacv


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      例如:

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

      • OpenCV 2.4.3 和 JAVA-BIN 0.3 = 兼容


      确保安装后重启

      【讨论】:

      • 请不要将整个答案输入大写,您似乎在大喊大叫;)谢谢!
      【解决方案3】:

      您的 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 !

      【讨论】:

      • 好的,我确实给了一个分号,但我之前忘了在这里提及。我仍然遇到同样的错误。
      【解决方案4】:

      几乎是我回答的same question

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-20
        • 2015-03-31
        • 2013-06-20
        • 2015-08-21
        • 2019-08-05
        • 2014-08-26
        • 2014-05-28
        相关资源
        最近更新 更多