我目前正在尝试在我的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作为其库之一,它确实有。我还试过“清理”所有项目,但这不起作用(它曾经吗?).所以我已经按照设置教程中的所有说明,但它仍然不工作.
有谁知道这里的问题可能是什么?提前感谢...
6条答案
按热度按时间oug3syen1#
问题是无法找到本机opencv库,因为它不在
java.library.path
中(它是本机库,不应该在通常的java类路径中,但它必须在java.library.path中)。你的opencv发行版应该包含:
libopencv_java249.so
的本机库,这必须在你的java.library.path
中。显然:它不是:UnsatisfiedLinkError是缺少本机库的症状。要包含这个本机库:用以下参数启动你的java程序:-Djava.library.path=/path/to/the/directory/of/ibopencv_java249.so
2lpgd9682#
另一个可能的解决方案,我在Ubuntu上工作:而不是将JVM参数设置为确切的
libopen.so
文件,尝试将其设置为文件夹:m3eecexj3#
嗨,如果有人在intelij上仍然面临着同样的挑战,你可以很容易地配置这个,首先下载OpenCv here,然后点击文件>项目结构
x1c 0d1x点击+ sign如图所示选择Jars/directories然后导航到opencv安装文件夹如图所示
然后双击opencv-version. jar
然后单击添加
然后根据操作系统x1c4d 1x选择1或2,如下所示
之后,单击确定好,然后尝试再次运行应用程序
这个解决方案的灵感来自这篇文章
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)之后,您可以重新编译您的工作,以检查它是否工作.
这个方法对我有效。
2q5ifsrm5#
在NetBeans中使用Java时,
在
Project Property>Run
中,我只是忘记了路径之间的双引号。添加双引号,然后一切正常。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
完了