我目前正在尝试在我的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作为其库之一。我也试过'清理'所有项目,但这没有用(它曾经有过吗?)。所以我已经按照设置教程中的所有说明进行操作,但它仍然无效。
有谁知道问题可能在这里?提前谢谢......
答案 0 :(得分:9)
问题是无法找到本机opencv库,因为它不在java.library.path
中(它是一个本机库,它不应该在通常的java类路径中,但它必须在java.library中) 。路径)。
您的opencv发行版应包含:
一个java库:opencv249.jar。这个库主要是一个java到本机库,带有jni东西,允许你从java代码进行本机调用。它必须在类路径中(根据你的错误和你的解释:它在你的类路径上 - >这里一切都好)
名为libopencv_java249.so
的本地库,必须位于java.library.path
。显然:它不是:UnsatisfiedLinkError是缺少本机库的症状。要包含此本机库:使用以下参数启动Java程序:
-Djava.library.path = /路径/到/ /目录/的/ ibopencv_java249.so
答案 1 :(得分:2)
另一个可能在Ubuntu上运行的解决方案:
不要将JVM参数设置为确切的libopen.so
文件,而是尝试将其设置为文件夹:
-Djava.library.path=/opencv-3.2.0/opencv/build/lib/
答案 2 :(得分:0)
美好的一天!我在另一个论坛上看到了这个。
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的preference设置后才适用。
这个方法对我有用。
答案 3 :(得分:-1)
我在ubuntu 14.o上遇到了同样的问题,我经常苦苦挣扎,找到了这个解决方案。
在此之前我通过在opencv unziped文件夹中创建build文件夹,在java-opencv快速入门教程中提到了opencv,然后运行了2个命令 1.cmake -DBUILD_SHARED_LIBS = OFF .. 如果你收到错误,请检查make是否安装 2.make -j8
完成。