openCV的java jar文件不下载dll

时间:2018-05-20 13:08:34

标签: java eclipse opencv javafx jar

使用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文件运行错误的问题吗?

1 个答案:

答案 0 :(得分:0)

UnsatisfiedLinkError表示您在IDE外部运行的程序无法找到opencv_java310.dll文件(对于Windows)或opencv_java310.so文件(对于Linux)。

请注意,只是将DLL放入JAR文件中将无效。

在Windows中,您可以:

  1. 运行Java应用程序时指定-Djava.library.path=fold1; fold1文件夹包含您的dll(小心空格)
  2. 将DLL文件复制到您从
  3. 调用java ..的工作文件夹中
  4. (更脏的方式)您可以复制opencv_java310.dll
  5. 下的c:\windows\system32