добавление библиотеки DLL в Java с использованием идеи для использования программы - PullRequest
3 голосов
/ 18 октября 2010

Я пытаюсь добавить и использовать программу под названием 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 ]

6 голосов
/ 18 октября 2010

Метод 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");
0 голосов
/ 18 октября 2010

Согласно этому руководству :

  • Вам необходимо установить LD_LIBRARY_PATH (в Linux / Unix) или PATH (Windows), включив каталог, в котором находятся библиотеки.
  • Вам не нужен суффикс .dll.
...