首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java.lang.UnsatisfiedLinkError: java.library.path中没有opencv_java2411

java.lang.UnsatisfiedLinkError: java.library.path中没有opencv_java2411
EN

Stack Overflow用户
提问于 2016-07-08 08:39:02
回答 4查看 11K关注 0票数 5

我试图将opencv添加到我的Spring /Maven项目中。

为了使用opencv库,我必须在java.library.path中提供本机库。

我在Eclipse参数中添加了以下命令:

代码语言:javascript
运行
复制
-Djava.library.path="D:/Projects/lib/opencv/x86/opencv_java2411.dll"

并有以下例外:

代码语言:javascript
运行
复制
java.lang.UnsatisfiedLinkError: no opencv_java2411 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)

我还试图从代码中直接访问java.library.path

代码语言:javascript
运行
复制
System.out.println(System.getProperty("java.library.path"));

它显示了提供的路径:D:/Projects/lib/opencv/x86/opencv_java2411.dll

我做错什么了?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-07-08 08:47:06

-Djava.library.path不应该指向DLL,而应该指向包含DLL的文件夹。例如-Djava.library.path=D:/Projects/lib/opencv/x86/

票数 4
EN

Stack Overflow用户

发布于 2018-12-04 12:42:24

我也面临着同样的问题,为了解决我运行的issue.When,运行java -jar openCV=project jar,我得到了与下面相同的异常

代码语言:javascript
运行
复制
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.UnsatisfiedLinkError: no opencv_java320 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at com.wso2telco.rnd.CamCapture.<init>(CamCapture.java:47)
at com.wso2telco.rnd.CamCapture.main(CamCapture.java:144)
... 5 more

因此,我在.java类中修改了下面的项目--我有以下行

代码语言:javascript
运行
复制
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.loadLibrary("opencv_java320");

我删除了这2行并添加了下面的行

代码语言:javascript
运行
复制
nu.pattern.OpenCV.loadLocally();

为了添加这一行,您需要在pom.xml中有这些依赖项

代码语言:javascript
运行
复制
<dependency>
<groupId>org.openpnp</groupId>
<artifactId>opencv</artifactId>
<version>3.2.0-0</version>
</dependency>
<dependency>
<groupId>nu.pattern</groupId>
<artifactId>opencv</artifactId>
<version>2.4.9-4</version>
</dependency>

在进行了上述修改之后,我能够使用-Dexec.mainClass="com.rnd.CamCapture" mvn:从终端运行程序。

票数 7
EN

Stack Overflow用户

发布于 2019-05-06 06:42:11

在windows上,设置环境路径,其中包括opencv_java***.dll。

代码语言:javascript
运行
复制
e.x.
{your OpenCV path}\opencv\build\java\x64
or
{your OpenCV path}\opencv\build\java\x86

在linux或其他操作系统中也是如此。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38262346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档