线程“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上遇到了同样的问题,我经常苦苦挣扎,找到了这个解决方案。
- 使用下面的行来打印您的本机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内的外部文件夹0.9 /编译/ lib目录
在此之前,我在java-opencv快速入门教程中提到opencv,在opencv unziped文件夹中创建build文件夹然后运行2命令1.cmake -DBUILD_SHARED_LIBS = OFF ..如果你得到错误然后检查make install or not 2.make -j8
完成。