线程"main" java.lang.UnsatisfiedLinkError: java.library.path 中没有opencv_java249



我目前正试图在我的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上遇到了同样的问题,我苦苦挣扎,找到了这个解决方案。

  1. 使用以下行打印您的Native lib路径:System.out.println(System.getProperty("java.library.path"))
  2. 如果要添加外部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

完成。

最新更新