Ошибка 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.