试图使用OpenCV可移植的java应用程序(Executable Jar)。 得到不满意的链接错误

我已经申请从网络摄像头抓取video并使用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.(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.(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.(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文件并设置相应的库路径, opencvjavacv的前提条件

例如:

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

还检查这个答案