我目前正试图在我的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作为它的库之一,它已经有了。我也尝试过"清理"所有项目,但都没有效果(有没有?)。所以我已经按照设置教程中的所有说明进行了操作,但它仍然不起作用。
有人知道这里可能出了什么问题吗?提前感谢。。。
问题是找不到本机opencv库,因为它不在java.library.path
中(它是本机库,不应该在通常的java类路径中,但必须在java.library.path中)。
您的opencv分发应该包含:
-
一个java库:opencv249.jar。这个库主要是一个java到原生库,带有jni的东西,允许您从java代码进行原生调用。它必须在类路径中(根据您的错误和解释:它在类路径上-->这里一切正常)
-
名为
libopencv_java249.so
的本机库,并且该库必须在您的java.library.path
中。显然:事实并非如此:不满意的链接错误是缺少本机库的症状。要包含这个本地库:使用以下参数启动java程序:-Djava.library.path=/path/to/ibopencv_java249.so 的/directory/
在Ubuntu上对我有效的另一个可能的解决方案:与其将JVM参数设置为确切的libopen.so
文件,不如尝试将其设置为文件夹:
-Djava.library.path=/opencv-3.2.0/opencv/build/lib/
您好!我在另一个论坛看到了这个。
如何从Eclipse 设置java.library.path
我发现你应该从opencv中复制.dll文件并将其粘贴到windows文件夹中。要做到这一点,请从这个路径文件夹中找到.dll
opencv>构建>java>x64(适用于64位平台)或opencv>构建>java>x86(用于x86/32位平台)
复制.dll文件并将其粘贴到您的windows文件夹(c:\windows)中,之后您可以重新编译您的工作以检查它是否有效。
*注意,只有当您已经将opencv的.jar文件设置为eclipse的首选项设置时,本教程才适用
这个方法对我有效。
在Netbeans中使用Java,包括
-Djava.library.path="E:Program Filesopencvbuildjavax64"
在Project Property>Run
中,我只是忘记了路径之间的双引号。加上双引号,一切都很好。
我在ubuntu14.o上遇到了同样的问题,我苦苦挣扎,找到了这个解决方案。
- 使用以下行打印您的Native lib路径:System.out.println(System.getProperty("java.library.path"))
- 如果要添加外部openc4-version.jar,那么在eclipse中打开BuildConfigurationPath->Library->opencv249.jar->Native Library然后单击编辑并选择外部文件夹,该文件夹将位于/home/dav/Downloads/opencv-2.4.9/build/lib中
在此之前,我通过在opencv解压文件夹中创建构建文件夹来构建opencv,就像他们在javaopencvquickstart教程中所做的那样,然后运行2个命令1.cmake-DBUILD_SHARED_LIBS=关闭。。如果出现错误,请检查是否已安装make2.制造-j8
完成。