java - 尝试使使用 OpenCV 的 java 应用程序(可执行 Jar)可移植。出现不满意的链接错误

标签 java opencv javacv unsatisfiedlinkerror

我制作了一个应用程序,用于从网络摄像头抓取视频并使用 OpenCV 和 JavaCV 检测运动。我正在尝试使用 eclipse 导出为可执行 jar。该程序在 eclipse 中运行良好,我编写该程序的计算机上的 exe jar 也运行良好。

我想要完成的是让exe Jar在没有安装OpenCV的计算机上运行。基本上我认为是可移植应用程序。当我在另一台除了 JRE 之外没有安装任何东西的计算机上运行 exe jar 时,我收到如下所示的不满意的链接错误。

Exception in thread "Video Thread" java.lang.UnsatisfiedLinkError: C:\Users\JohnD\AppData\Local\Temp\javacpp91062429652918\jniopencv_core.dll: Can't find dependent libraries
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(Unknown Source)
    at java.lang.ClassLoader.loadLibrary0(Unknown Source)
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.load0(Unknown Source)
    at java.lang.System.load(Unknown Source)
    at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:566)
    at com.googlecode.javacpp.Loader.load(Loader.java:489)
    at com.googlecode.javacpp.Loader.load(Loader.java:431)
    at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at com.googlecode.javacpp.Loader.load(Loader.java:453)
    at com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:97)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at com.googlecode.javacpp.Loader.load(Loader.java:453)
    at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:85)
    at com.googlecode.javacv.OpenCVFrameGrabber.start(OpenCVFrameGrabber.java:174)
    at VideoPanel.run(VideoPanel.java:163)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.UnsatisfiedLinkError: no opencv_core244 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 com.googlecode.javacpp.Loader.loadLibrary(Loader.java:593)
    at com.googlecode.javacpp.Loader.load(Loader.java:481)
    ... 13 more

我正在寻找解决方案来解决我做错的事情。我遇到的大多数主题都存在不满意的链接错误,就像我收到的那样,一直试图让它在 IDE 中首次运行,但这里的情况并非如此。我认为我的依赖关系在构建路径中的库中是正确的,因为当我在安装了所有内容的计算机上时,我可以让它完美运行,但我仍然相信我在构建中做错了。

我再次尝试使 Jar 可以在未安装 OpenCV/JavaCV 的计算机上运行。任何帮助将不胜感激。

最佳答案

如果目标机上没有安装opencv,则需要传递必要的opencv的dll文件并设置相应的库路径,opencvopencv的前提条件javacv

例如:

jar yourapp.jar -Djava.library.path="/path/to/OpenCV/library"

also check this answer

关于java - 尝试使使用 OpenCV 的 java 应用程序(可执行 Jar)可移植。出现不满意的链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16269517/

相关文章:

android - 在 Android Studio 中使用 OpenCV Android 库时出错

java - 如何将图像标准化为一系列值

matlab - 相机标定 MATLAB 工具箱

android - JavaCV图像模糊

java - Proguard 删除 Android 应用程序中的注释

java - JButton 中的图像自动调整?

java - 作为 Jar 运行时出现 FileNotFoundException - Java

java - 密码保存在数据库中

java - Solaris:与 ZFS 一起使用的虚拟片/磁盘

c++ - OpenCV drawCircle 并在圆线上绘制矩形