我有一个独立的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)
有没有人能够在这个问题上帮助我? 我已经研究了很长时间,但没有线索...... 感谢。
答案 0 :(得分:0)
检查Redhat上的PATH。
Xuggle库(.so
)应该在调用java程序的进程的PATH中。
问题还可能来自库依赖项。 我在Windows 7遇到了问题;为了解决这个问题,我手动检查所有dll依赖项,并按照正确的顺序逐个加载到我的Java代码中。
您也可以尝试修改java库路径java -Djava.library.path=/path/to/xuggle_install