【问题标题】:java.lang.UnsatisfiedLinkError: no opencv_java300 in java.library.path only while testing [duplicate]java.lang.UnsatisfiedLinkError:仅在测试时 java.library.path 中没有 opencv_java300 [重复]
【发布时间】:2015-10-24 15:32:55
【问题描述】:

我目前正在尝试开发将使用 OpenCV 库的 Java 应用程序。我试图使用这样的 testNg 框架测试我的 openCV 配置:

@Test
public void openCVTest(){
    System.out.println("OpenCV configuration simple test:");
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    Mat m = Mat.eye(3,3, CvType.CV_8UC1);
    System.out.println("OpenCV matrix = " + m.dump());
}

然而这产生了一个错误:

java.lang.UnsatisfiedLinkError: no opencv_java300 in java.library.path

我找到了多个答案(即使在 stackoverflow 上),他们都建议使用我尝试过的一些解决方案进行错误配置。最后我尝试运行相同的代码,但这次是在这样的应用程序中:

public class App {
    public static void main( String[] args ){
        System.out.println("OpenCV configuration simple test:");
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat m = Mat.eye(3,3, CvType.CV_8UC1);
        System.out.println("OpenCV matrix = " + m.dump());
    }
}

而且它的工作方式与预期一样。所以我的问题是,为什么这不适用于测试框架?也许不知何故我还必须为测试配置 openCV 库?

【问题讨论】:

  • 您的顶级测试似乎没有正确配置其 java.library.path 以找到它的本机库,在您的第二个示例中正确配置了它。对第二个示例中的 java.library.path 属性执行 system.out() 并查看值是什么。
  • 感谢您的关注。等我下班回来试试。

标签: java opencv testng


【解决方案1】:

最后我在测试中使用绝对路径解决了这个问题,如下所示:

@BeforeClass
public void setUp(){
    System.loadLibrary("lib/x64/opencv_java300");
}

@Test
public void openCVTest(){
    System.out.println("OpenCV configuration simple test:");
    Mat m = Mat.eye(3,3, CvType.CV_8UC1);
    System.out.println("OpenCV matrix = " + m.dump());
}

在我的应用程序中,我正在正常加载它:

 public class App {

    static{ System.loadLibrary(Core.NATIVE_LIBRARY_NAME); }

    public static void main( String[] args ){
        System.out.println("OpenCV configuration simple test:");
        Mat m = Mat.eye(3,3, CvType.CV_8UC1);
        System.out.println("OpenCV matrix = " + m.dump());
    }

 }

【讨论】:

    猜你喜欢
    • 2015-09-25
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 2021-02-24
    • 2012-12-11
    相关资源
    最近更新 更多