0

我有一个独立的 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

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)

有没有人可以在这个问题上帮助我?我研究了很长时间,但没有任何线索......谢谢。

4

1 回答 1

0

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

问题也可能来自库依赖项。我在Windows 7上遇到过这个问题;为了解决这个问题,我手动检查所有 dll 依赖项并以正确的顺序将它们一一加载到我的 Java 代码中。

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

于 2013-06-28T08:17:32.707 回答