Как использовать JVLC (привязки Java для VLC)?

Я пытаюсь использовать JVLC, но я не могу заставить его работать. Я скачал флягу, установил VLC и передал аргумент -D в JVM, сообщая, где установлен VLC. Я также попробовал:

NativeLibrary.addSearchPath("libvlc", "C:\\Program Files\\VideoLAN\\VLC");

без удачи Я всегда получаю:

Исключение в потоке "main" java.lang.UnsatisfiedLinkError: Невозможно загрузить библиотеку 'libvlc': Указанный модуль не найден.

Кто-нибудь заставил это работать?

4 ответа

Вы можете получить это исключение, если dll, который вы пытаетесь загрузить, требует других dll, которые не доступны. Извините, я не могу оказать более конкретную помощь, но это то, что нужно проверить. Вы можете использовать зависит от зависимости от DLL.

Тебе стоит попробовать

System.load("C:\\Path\\To\\libvlc.dll");

по крайней мере, чтобы убедиться, что ваша библиотека может быть загружена. И если нет, он может дать вам полезные сообщения об ошибках (это сделал для меня).

(И, как уже упоминал Sipe, вы можете использовать 64-битный JRE/JDK, и в этом случае libvlc никогда не будет найден (только 32-битный). В этом случае вы должны перейти на использование 32-битного JRE/JDK.)

Не уверен насчет этого класса NativeLibrary. Как правило, при использовании нативных библиотек вам необходимо установить системное свойство "java.library.path" в расположение ваших нативных библиотек. Как и предполагалось, если ваша нативная библиотека (dll, so и т. Д.) Зависит от дополнительных нативных библиотек, ОС разрешит эти зависимости. ОС не будет иметь никакого представления о java.library.path и его поиске, выполняя поиск специфичного для ОС пути для собственных библиотек. В Windows это включает в себя текущую переменную среды PATH, а также System32 в каталоге Windows. В Linux это настройка LD_LIBRARY_PATH / ld.conf.

Попробуйте установить PATH (LD_LIBRARY_PATH) так, чтобы он указывал на то же местоположение, что и java.library.path. Единственная загвоздка в том, что вы не можете установить этот процесс, который запускает ваш процесс (JVM), уже слишком поздно. Вы должны иметь установленную среду ДО запуска JVM. Вы можете сделать это с помощью командных файлов, сценариев оболочки, Ant или непосредственно из вашей IDE.

У меня была такая же проблема, и я заметил, что это произошло только с 64-битным JDK / JRE. Работает как шарм с 32-битным JDK под Win7 x64.

Приятного кодирования!

-Sipe

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