Нет xuggle в java.library.path на Redhat

У меня есть отдельная программа Java, которая использует Xuggle для преобразования видео. Версия Xuggle — xuggle-xuggler-5.4.jar. Я добавил его для построения пути.

Java-программа отлично работает на

Федора

Linux localhost.localdomain 3.6.10-4.fc18.x86_64 #1 SMP Tue Dec 11 18:01:27 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

и

Убунту

Linux ubuntu 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Но при запуске на Redhat

Linux localhost.localdomain 2.6.32-358.2.1.el6.x86_64 #1 SMP Wed Feb 20 12:17:37 EST 2013 x86_64 x86_64 x86_64 GNU/Linux 

Я столкнулся с ошибкой:

Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError: no xuggle in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at com.xuggle.ferry.JNILibraryLoader.loadLibrary0(JNILibraryLoader.java:268)
at com.xuggle.ferry.JNILibraryLoader.loadLibrary(JNILibraryLoader.java:171)
at com.xuggle.ferry.JNILibrary.load(JNILibrary.java:161)
at com.xuggle.ferry.FerryJNI.<clinit>(FerryJNI.java:16)
at com.xuggle.ferry.Ferry.<clinit>(Ferry.java:25)
at com.xuggle.xuggler.XugglerJNI.<clinit>(XugglerJNI.java:19)
at com.xuggle.xuggler.IContainer.<clinit>(IContainer.java:1622)
at com.xuggle.mediatool.MediaReader.<init>(MediaReader.java:137)
at com.xuggle.mediatool.ToolFactory.makeReader(ToolFactory.java:77)
at com.hkmci.standalone.videoconversion.MediaConvertor$VideoThread.convert(MediaConvertor.java:238)
at com.hkmci.standalone.videoconversion.MediaConvertor$VideoThread.run(MediaConvertor.java:351)
at java.lang.Thread.run(Thread.java:662)

Есть ли кто-нибудь, кто может мне помочь в этом вопросе? Я изучал это в течение долгого времени, но никаких зацепок... Спасибо.


person Grace    schedule 27.06.2013    source источник


Ответы (1)


Проверьте свой PATH на Redhat. Библиотеки Xuggle (.so) должны находиться в PATH процесса, вызывающего вашу Java-программу.

Проблема также может быть связана с зависимостями библиотек. Я столкнулся с проблемой в Windows 7; чтобы решить эту проблему, я вручную проверяю все зависимости dll и загружаю их в свой код Java одну за другой в правильном порядке.

Также вы можете попробовать изменить путь к библиотеке Java java -Djava.library.path=/path/to/xuggle_install

person zeropouet    schedule 28.06.2013
comment
Спасибо за ответ. Я совершенно новичок в Linux. Не могли бы вы подробнее объяснить решение? Я не устанавливал ничего на Ubuntu, Fedora и т. д., что могло бы без проблем запускать автономную программу Java. Есть ли разница между Ubuntu, Fedora и RedHat? Нужно ли мне устанавливать что-то для поддержки Xuggler в RedHat? Кстати, это связано с gcc/g++? - person Grace; 28.06.2013
comment
В оболочке проверьте различия между вашими Fedora, Ubuntu и Redhat. Введите echo $PATH, чтобы отобразить, какие каталоги включены в вашу среду. Это не связано с g++/gcc, если вы не компилировали Xuggle самостоятельно. Наиболее вероятная основная причина заключается в том, что библиотеки, установленные на Redhat, несовместимы с библиотеками xuggles. В Fedora и Ubuntu, вероятно, установлена ​​более новая версия. Вы должны проверить предварительные условия для xuggle 5.4 и убедиться, что они выполнены на Redhat. - person zeropouet; 28.06.2013
comment
Я проверил свой PATH в Fedora. В PATH нет библиотек Xuggle (.so). Но я могу успешно конвертировать видео. Означает ли это, что это не связано с конфигурацией PATH? - person Grace; 02.07.2013
comment
@ Грейс, у меня такая же проблема. Хорошо работает на Ubuntu, но не с Redhat. Вы решили эту проблему? - person jlago; 08.11.2013