在Redhat上的java.library.path中没有xuggle

时间:2013-06-27 08:13:35

标签: java linux redhat xuggle

我有一个独立的java程序,它使用Xuggle进行视频转换。 Xuggle的版本是xuggle-xuggler-5.4.jar。我已将其添加到构建路径中。

java程序可以正常工作

Fedora

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

Ubuntu

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)

有没有人能够在这个问题上帮助我? 我已经研究了很长时间,但没有线索...... 感谢。

1 个答案:

答案 0 :(得分:0)

检查Redhat上的PATH。 Xuggle库(.so)应该在调用java程序的进程的PATH中。

问题还可能来自库依赖项。 我在Windows 7遇到了问题;为了解决这个问题,我手动检查所有dll依赖项,并按照正确的顺序逐个加载到我的Java代码中。

您也可以尝试修改java库路径java -Djava.library.path=/path/to/xuggle_install