Ошибка OpenCV JAVA NETBEANS

Я получаю эту ошибку после запуска моего проекта с библиотекой javacv.

   Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java2411 in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
        at java.lang.Runtime.loadLibrary0(Runtime.java:870)
        at java.lang.System.loadLibrary(System.java:1122)
        at webcam.cam.main(cam.java:181)

1 ответ

Решение

Вы можете использовать это следующим образом:

public static void loadOpenCVLib(String path) throws Exception {
    File lib_dir = new File(path);
    System.setProperty("java.library.path", lib_dir.getAbsolutePath());
    Field sys_paths = ClassLoader.class.getDeclaredField("sys_paths");
    sys_paths.setAccessible(true);
    sys_paths.set(null, null);
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    // it is for the ffmpeg name
    String[] list = lib_dir.list();
    assert list != null;
    String ffmpeg_dll_file_name = null;
    for (String s : list) {
        if (s.contains("ffmpeg")) {
            ffmpeg_dll_file_name = s.substring(0, s.indexOf("."));
        }
    }
    System.loadLibrary(ffmpeg_dll_file_name);
}

А теперь создайте папку в каком-то месте и назовите ее opencv_lib например: D:\opencv_libи затем поместите в эту папку файлы opencv dll и ffmpeg dll, а затем при запуске программы сначала вызовите метод, описанный выше, например:

loadOpenCVLib("D:\\opencv_lib");

Теперь все будет хорошо.

Примечание. Будет лучше загрузить и использовать последнюю версию OpenCV.

Другие вопросы по тегам