JavaCV给出了java.lang.UnsatisfiedLinkError

时间:2011-07-22 01:23:32

标签: java opencv native linker-errors

好吧,你可能会说“使用谷歌搜索这个,有数百万”。但是,我几乎花了一整天才运行以下代码,但是每次尝试我都得到了 java.lang.UnsatisfiedLinkError: C:\用户\ HP \应用程序数据\本地的\ Temp \ jniopencv_core2477828805078034839.dll:  找不到依赖库错误,这让我很生气。

我找到 javacv-bin 文件夹,其中包括 javacpp.jar,javacv.jar,javacv-windows-x86.jar,javacv-windows-x86_64.jar

在Netbeans中,我打开了项目属性,并将它们添加到库中

我找到了 OpenCV2.3 文件夹,将其复制并粘贴到C:\目录中。

我添加了 C:\ OpenCV2.3 \ build \ bin; C:\ OpenCV2.3 \编译\ 86 \ VC10 \ BIN; 路径中的C:\ OpenCV2.3 \ build \ x64 \ vc10 \ bin;

我相信没有什么可做的。但是,自从我尝试以来,我都遇到了同样的错误。我很累,请有人帮助我。

最后要说的是,我有 32位 64位 JDK,所以我尝试了两个编译器但它没用。

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 Smoother {
    public static void main(String[] args) {
        smooth("filename0.png");
    }
    public static void smooth(String filename) {
        System.out.println("java.library.path="+System.getProperty("java.library.path"));
        IplImage image = cvLoadImage(filename);
        if (image != null) {
            cvSmooth(image, image, CV_GAUSSIAN, 3);
            cvSaveImage(filename, image);
            cvReleaseImage(image);
        }
    }
}

4 个答案:

答案 0 :(得分:2)

我遇到了和你一样的问题。假设您的openCV文件夹位置为C:\OpenCV2.3,请执行以下操作。

  1. 在用户和系统环境变量下创建路径和类路径变量。

  2. 将此附加到所有四个变量(假设您拥有最新版本的openCV2.3):C:\OpenCV2.3\build\bin;C:\OpenCV2.3\build\x64\mingw\bin;C:\OpenCV2.3\build\x64\vc9\bin;C:\OpenCV2.3\build\x64\vc10\bin;C:\OpenCV2.3\build\x86\mingw\bin;C:\OpenCV2.3\build\x86\vc9\bin;C:\OpenCV2.3\build\x86\vc10\bin;

  3. 希望它有所帮助! 阿拉文德

答案 1 :(得分:1)

两个提示:

  • 你不能在pathes中混合64和x86库!
  • 重启Eclipse

答案 2 :(得分:0)

我从未使用过OpenCV,但不知怎的,我让我的JNI代码工作。你生成了.dll还是它附带了包?并查看这篇文章,它可能是Ohelp JNI error while calling a C subroutine ...还有一个建议尝试将你的dll放入system32文件夹,然后使用System.load(path / to / dll)方法手动加载...快乐编码

答案 3 :(得分:0)

如果有人遇到此问题且更新了系统路径和类路径未解决,请将OpenCv2.3.1目录重命名为“opencv”。它确实解决了我的问题。