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

i2byvkas  于 2023-10-24  发布在  Java
关注(0)|答案(6)|浏览(271)

我目前正在尝试在我的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作为其库之一,它确实有。我还试过“清理”所有项目,但这不起作用(它曾经吗?).所以我已经按照设置教程中的所有说明,但它仍然不工作.
有谁知道这里的问题可能是什么?提前感谢...

oug3syen

oug3syen1#

问题是无法找到本机opencv库,因为它不在java.library.path中(它是本机库,不应该在通常的java类路径中,但它必须在java.library.path中)。
你的opencv发行版应该包含:

  • java library:opencv249.jar。这个库主要是一个java到native的库,带有jni的东西,允许你从java代码进行native调用。它必须在类路径中(根据你的错误和你的解释:它在你的类路径上-->这里一切正常)
  • 一个名为libopencv_java249.so的本机库,这必须在你的java.library.path中。显然:它不是:UnsatisfiedLinkError是缺少本机库的症状。要包含这个本机库:用以下参数启动你的java程序:

-Djava.library.path=/path/to/the/directory/of/ibopencv_java249.so

2lpgd968

2lpgd9682#

另一个可能的解决方案,我在Ubuntu上工作:而不是将JVM参数设置为确切的libopen.so文件,尝试将其设置为文件夹:

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

m3eecexj3#

嗨,如果有人在intelij上仍然面临着同样的挑战,你可以很容易地配置这个,首先下载OpenCv here,然后点击文件>项目结构
x1c 0d1x点击+ sign如图所示选择Jars/directories然后导航到opencv安装文件夹如图所示

然后双击opencv-version. jar

然后单击添加

然后根据操作系统x1c4d 1x选择1或2,如下所示
之后,单击确定好,然后尝试再次运行应用程序
这个解决方案的灵感来自这篇文章

zqdjd7g9

zqdjd7g94#

你好!我在另一个论坛上看到了这个。
How to set the java.library.path from Eclipse
我发现你应该从你的opencv复制.dll文件并粘贴到你的windows文件夹。要做到这一点,请从这个路径文件夹中找到.dll

opencv>build>java>x64(64位平台)opencv>build>java>x86(x86/32位平台)。

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

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

这个方法对我有效。

2q5ifsrm

2q5ifsrm5#

在NetBeans中使用Java时,

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

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

1l5u6lss

1l5u6lss6#

我在ubuntu 14.o上遇到了同样的问题,我挣扎了很久,找到了这个解决方案。
1.使用下面的行打印您的本地库路径:System.out.println(System.getProperty(“java.library.path”));
1.如果您要添加外部openc4-version.jar,则在eclipse中打开BuildconfigationPath->Library-> opencv2.4.9.jar->Native Library,然后单击编辑并选择外部文件夹,该文件夹将位于/home/dav/Downloads/opencv-2.4.9/build/lib中
在此之前,我建立了opencv,因为他们在java-opencv快速入门教程中提到的通过创建构建文件夹内opencv解压文件夹,然后运行2命令1.cmake -DBUILD_SHARED_LIBS=OFF..如果你得到错误,然后检查使安装或不2.make -j8
完了

相关问题