线程“main”中的exceptionjava.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代码进行本机调用。 它必须在classpath中(根据你的错误和你的解释:它在你的类路径上 – >这里的一切都好)

  • 一个名为libopencv_java249.so的本机库,它必须位于java.library.path 。 显然:它不是:UnsatisfiedLinkError是缺少本机库的症状。 要包含此本机库:使用以下参数启动Java程序:

    -Djava.library.path = /路径/到/ /目录/的/ ibopencv_java249.so

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

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

我在ubuntu 14.o上遇到了同样的问题,我经常苦苦挣扎,找到了这个解决方案。

  1. 使用下面的行来打印您的本机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内的外部文件夹0.9 /编译/ lib目录

在此之前,我在java-opencv快速入门教程中提到opencv,在opencv unziped文件夹中创建build文件夹然后运行2命令1.cmake -DBUILD_SHARED_LIBS = OFF ..如果你得到错误然后检查make install or not 2.make -j8

完成。