Добавление библиотеки DLL в Java с использованием идеи для использования программы
Я пытаюсь добавить и использовать программу под названием JVLC к моей программе. Я скачал zip-файл, содержащий jar-файл (jvlc.jar) для java-интерфейса и 2 dll-файла (jvlc.dll, libvlc.dll), а также папку, содержащую много dll-файлов. когда я запускаю свою программу, возникает UnsatisfiedLinkError. Я использовал этот код, чтобы добавить эти 2 DLL-файлы в мой проект.
System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\jvlc.dll");
System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\libvlc.dll");
но все же есть ошибка:
UnsatisfiedLinkError: разделитель каталогов не должен появляться в имени библиотеки
Нужно ли добавлять все папки в пути к библиотекам? Если да, то как?
пожалуйста, направь меня.
2 ответа
System.loadLibrary
Метод загружает библиотеку на основе имени библиотеки (libName, без расширения), а не через имя файла. Например, Java поставляется с zip.dll / zip.so (Linux), который используется, когда мы используем классы Zip Deflater/Inflater для zip-файлов.
Если вы хотите использовать указать имя файла DLL, используйте System.load(String filename)
В противном случае зарегистрируйте свою DLL в пути к Java-библиотеке.
Пример можно найти здесь.
Для вашего примера, пожалуйста, сделайте это:
//Your code....
System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\jvlc.dll");
System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\libvlc.dll");
//Replace with this...
System.load("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\jvlc.dll");
System.load("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\libvlc.dll");
Согласно этому уроку:
- Вам нужно установить
LD_LIBRARY_PATH
(в Linux/Unix) илиPATH
(Windows) включает каталог, в котором находятся библиотеки. - Вам не нужно
.dll
суффикс.