jav файл jar для openCV не скачивает dll - PullRequest
0 голосов
/ 20 мая 2018

OpenCV отлично работает для кода Java, используя eclipse.

Но При преобразовании в файл 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 выполняется успешно.

public static void main(String[] args) {
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    launch(args);
}

Примечание: даже я объявил путь к файлу DLL в сборке JavaПуть по ссылке http://opencv -java-tutorials.readthedocs.io / en / latest / 02-first-java-application-with-opencv.html

Может кто-нибудь помочь мнерешить проблему с ошибкой запуска файла JAR?

1 Ответ

0 голосов
/ 20 мая 2018

UnsatisfiedLinkError означает, что программа, которую вы запускаете вне среды IDE, не может найти файл opencv_java310.dll (для Windows) или opencv_java310.so (для Linux).

Обратите внимание, что простоDLL в вашем JAR-файле не будет работать.

В Windows вы можете:

  1. указать -Djava.library.path=fold1 при запуске приложения Java;папка fold1 содержит вашу dll (остерегайтесь пробелов)
  2. Скопируйте файл DLL в рабочую папку, которую вы вызываете java .. из
  3. (более грязный способ), который вы можете скопировать opencv_java310.dll под c:\windows\system32
...