我制作了一个应用程序来从网络摄像头抓取视频并使用 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 的计算机上运行。任何帮助将不胜感激。