Добавление библиотеки 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 суффикс.
Другие вопросы по тегам