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

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

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

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

Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'libvlc': The specified module could not be found.

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

Лучшей альтернативой в наши дни был бы VLCJ: code.google.com/p/vlcj Проект JVLC практически мертв, а VLCJ давно его превзошел.

Michael Berry 04.08.2011 20:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
16 459
4

Ответы 4

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

Не уверен в этом классе NativeLibrary. Обычно при использовании собственных библиотек вам необходимо установить системное свойство «java.library.path» в соответствии с расположением ваших собственных библиотек. Как и предполагалось, если ваша собственная библиотека (dll и т. д.) Зависит от дополнительных собственных библиотек, тогда ОС возьмет на себя управление этими зависимостями. ОС не будет иметь ни малейшего представления о 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

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

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

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

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

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