2012-12-09 3 views
3

У меня проблема с vlc.Я использую Eclipse и сделал небольшое приложение для воспроизведения видеофайлов с использованием vlcj framework. Внутри Eclipse все работает нормально но когда я делаю исполняемый файл jar через Eclipse и дважды щелкаю его (в Windows 64: протестирован только на этой платформе) ничего не происходит. Затем я пытаюсь использовать «cd myjarfilepath», а затем «java -jar myjarname.jar» и все отлично работает. Почему это происходит и как его решить?VLCJ: Packaged Jar cant загружает библиотеку libvlc при двойном щелчке, но отлично работает через консоль

Заранее благодарим сообщество stackoverflow.

Edit:

В Путь Адрес: C: \ Users \ Пользователь \ Documents \ 31 \ Latest_Win64 \ Необходимый у меня есть следующие файлы:

plugins(directory) 
axvlc.dll 
axvlc.dll.manifest 
libvlc.dll 
libvlc.dll.manifest 
libvlccore.dll 
npvlc.dll 
npvlc.dll.manifest 
vlc.exe.manifest 

В моем пути к классам я включил следующие файлы :

jna-3.5.1.jar 
platform-3.5.1.jar 
vlcj-2.2.0.jar 
vlcj-2.2.0-javadoc.jar 
vlcj-2.2.0-sources.jar 
+0

Это происходит только с этой конкретной баночкой - это работает для всех других банок? Если это так, VLCJ может быть красной селедкой. – berry120

+0

@ berry120 Да, происходит только в проектах на основе vlcj. Вот почему я прошу решения. Это моя проблема с большой инфраструктурой vlcj. – PeGiannOS

+0

На самом деле, чтобы проверить с помощью обычных приложений, я загружаю dlls vlcj в свой конструктор, чтобы мой JFrame даже не появлялся, если библиотеки не загружаются успешно. Если я загружу эти DLL, скажем, после нажатия кнопки, появится JFrame, но конечно, средства массовой информации не могут быть воспроизведены. – PeGiannOS

ответ

1

Это звучит как проблема с загрузкой необходимых файлов VLCj. Требуются не только DLL, но и каталог плагинов. Поскольку местоположение выполнения перемещается из внутреннего затмения обратно в файловую систему, путь к этим файлам может быть установлен неверно.

Похоже, вы работаете в затмении. Это укажет мне, что то, что у вас есть, должно работать. Во-первых, я бы рекомендовал приобрести DLL VLC и т. Д., Предоставив это как аргумент виртуальной машины, такой как показано ниже, вместо того, чтобы устанавливать его в коде. Не забудьте прокомментировать любую загрузку, которую вы делаете в своем коде, чтобы вы полагались на аргумент командной строки.

-Djna.library.path={Application Location}/lib 
example: -Djna.library.path=C:/myapp/lib 


Directory Contents: 
lib 
-- libblc.dll 
-- libvlc5.dll 
-- {etc} 
/plugins 
    /3dnow 
    /access 
    {etc} 

Если у вас все еще есть проблемы, добавьте следующий аргумент, чтобы поместить VLCj в режим отладки. Это может быть очень полезно для определения того, где вещи терпят неудачу.

-Dvlcj.log=DEBUG 

Надеюсь, что это поможет.

+0

Без использования кода загрузки я попытался использовать -Djna.library.path = C:/Users/user/Documents/31/Latest_Win64/Needed, но теперь он не запускается из jar и консоль (только из eclipse). Я разместил необходимые файлы в папке в папке C: \ Users \ user \ Documents \ 31 \ Latest_Win64 \ Needed, включая каталог плагинов. Однако в случае, если я отредактирую сообщение для получения более подробной информации в этой папке Needed Однако я ценю вашу помощь. – PeGiannOS

+1

Длинный снимок, но используете ли вы ту же версию Java в Eclipse, которую используете вне Eclipse? Однажды у меня возникла проблема с vlcj, где я использовал 32-битную Java в Eclipse, и она работала, но она не будет работать с 64-разрядной Java, работающей в Windows 7. Vlcj очень разборчива примерно 32 против 64-битного. – Beatty

+0

Я обнаружил, что внутри eclipse я использую 64-битную java и вне 32 бит, используя эту команду/инструкцию: System.out.println (System.getProperty ("sun.arch.data.model")); – PeGiannOS