有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

OpenCV 4.3.0 java。Eclipse中的lang.UnsatifiedLinkError

我试图在Eclipse中与OpenCV 4.3.0的Java绑定进行一些模板匹配,但尝试加载模板映像总是会导致以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_0(Ljava/lang/String;I)J

引发此异常的代码行如下:

flowerTemplate = Imgcodecs.imread("/templates/flowerpot_white.png", Imgcodecs.IMREAD_COLOR);

我在StackOverflow和互联网上的其他地方尝试了一些类似问题的解决方案,包括:

  • 指向Eclipse中用户库定义中带有“native library location”变量的本机库文件夹
  • 将本机库文件夹位置添加到my PATH变量
  • 添加本机库。我的路径变量的dll位置
  • 设置Eclipse运行配置以添加本机库文件夹&。路径和类路径变量的dll位置
  • 按照我看到的三种方法中的每一种,在三个不同的位置加载带有适当Java代码的库,它们都在引发异常的代码之前运行
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.load(<path_to_the_dll>);

File opencvLibrary = new File(System.mapLibraryName(Core.NATIVE_LIBRARY_NAME));
System.load(opencvLibrary.getAbsolutePath());
  • 放置。将有问题的dll放入我的源文件夹和每个子文件夹。我在Eclipse中运行它,所以这也是程序的工作目录

共 (1) 个答案

  1. # 1 楼答案

    在删除每个加载方法,然后逐个添加它们之后,我确定问题很可能是由Eclipse两次加载本机库文件夹引起的