线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有opencv_java249

问题描述 投票:0回答:6

我目前正在尝试在 32 位笔记本电脑上设置 OpenCV,但我不断收到一条错误消息,这让我很困惑:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java249 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 hello.main(hello.java:8)

我尝试过进行一些切换,例如进入用户库并将本机库位置更改为 \x64 而不是 \x86,但这没有用。我还确保我的 Java 项目将 OpenCV-2.4.9 作为其库之一,它已经拥有了。我也尝试过“清理”所有项目,但这并没有奏效(有吗?)。因此,我已按照设置教程中的所有说明进行操作,但仍然无法正常工作。

有谁知道这里可能出现什么问题吗?预先感谢...

java opencv java-native-interface java.library.path
6个回答
11
投票

问题是找不到原生opencv库,因为它不在

java.library.path
中(它是原生库,不应该在通常的java类路径中,但必须在java.library.path中)。

您的 opencv 发行版应包含:

  • java 库:opencv249.jar。这个库主要是一个java到native的库,带有jni的东西,允许您从java代码进行本机调用。它必须在类路径中(并且根据您遇到的错误和您的解释:它在您的类路径上 --> 这里一切正常)

  • 一个名为

    libopencv_java249.so
    的本机库,它必须位于您的
    java.library.path
    中。显然:事实并非如此:UnsatisfiedLinkError 是缺少本机库的症状。要包含此本机库:使用以下参数启动您的 java 程序:

    -Djava.library.path = /路径/到/ibopencv_java249.so的/目录


3
投票

在 Ubuntu 上对我有用的另一个可能的解决方案: 不要将 JVM 参数设置为确切的

libopen.so
文件,而是尝试将其设置为文件夹:

-Djava.library.path=/opencv-3.2.0/opencv/build/lib/

0
投票

美好的一天!我从其他论坛看到了这个。

如何从 Eclipse 设置 java.library.path

我发现你应该从 opencv 复制 .dll 文件并将其粘贴到 Windows 文件夹中。为此,请从此路径文件夹中找到 .dll

opencv>build>java>x64(适用于64位平台) 或者 opencv>build>java>x86(适用于 x86/32 位平台)。

复制 .dll 文件并将其粘贴到您的 Windows 文件夹( c:/windows ),然后您可以重新编译您的工作以检查它是否有效。

*注意,本教程仅适用于您已将 opencv 的 .jar 文件设置为 eclipse 的首选项设置的情况。

这个方法对我有用。


0
投票

在 Netbeans 中使用 Java,当包含时

-Djava.library.path="E:\Program Files\opencv\build\java\x64" 

Project Property>Run
中我只是忘记了路径之间的双引号。添加双引号然后一切正常。


0
投票

嗨,如果有人在 intelij 上仍然面临同样的挑战,您可以通过首先下载 OpenCv here 轻松配置它,然后您可以单击文件>项目结构

单击+号,如图所示 选择罐子/目录 然后导航到opencv安装文件夹,如图所示 然后双击 opencv-version.jar

然后点击添加

然后根据您的操作系统选择 1 或 2,如下所示

之后单击“确定”,然后尝试再次运行该应用程序

此解决方案的灵感来自this文章


-1
投票

我在 ubuntu 14.o 上遇到了同样的问题,我费了很大劲才找到这个解决方案。

  1. 使用下面的行打印您的本机库路径: System.out.println(System.getProperty("java.library.path"));
  2. 如果您要添加外部 openc4-version.jar 那么,在 eclipse 中打开 BuildConfigurationPath->库->opencv249.jar->本机库 然后单击编辑并选择位于 /home/dav/Downloads/opencv-2.4.9/build/lib 内的外部文件夹

在此之前,我按照 java-opencv 快速入门教程中提到的方式构建了 opencv,方法是在 opencv 解压文件夹中创建 build 文件夹,然后运行 2 个命令 1.cmake -DBUILD_SHARED_LIBS=OFF .. 如果出现错误,请检查是否已安装 2.make -j8

完成。

© www.soinside.com 2019 - 2024. All rights reserved.