使用eclipse,OpenCV可以正常使用Java代码。
但是在使用时转换为JAR文件 File-> Export-> Runnable JAR File->将所需的库打包到生成的JAR中
JAR文件已成功创建。但是在控制台上运行jar会给出
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.UnsatisfiedLinkError: no opencv_java310 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.sdschd.portable.ControlPanel.main(ControlPanel.java:19)
... 5 more
如果在eclipse构建中运行app,它就会成功运行。
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
launch(args);
}
注意:甚至我在Java Build Path中声明了dll文件的路径 根据链接 http://opencv-java-tutorials.readthedocs.io/en/latest/02-first-java-application-with-opencv.html
有人可以帮我解决JAR文件运行错误的问题吗?
答案 0 :(得分:0)
UnsatisfiedLinkError
表示您在IDE外部运行的程序无法找到opencv_java310.dll
文件(对于Windows)或opencv_java310.so
文件(对于Linux)。
请注意,只是将DLL放入JAR文件中将无效。
在Windows中,您可以:
-Djava.library.path=fold1
; fold1
文件夹包含您的dll(小心空格)java ..
的工作文件夹中
opencv_java310.dll
c:\windows\system32
醇>