2013-06-27 61 views
0

我有一个使用Xuggle进行视频转换的独立Java程序。 Xuggle的版本是xuggle-xuggler-5.4.jar。我已经添加它来建立路径。Redhat上的java.library.path中没有xuggle

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

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

该问题也可能来自库依赖关系。 我曾遇到Windows 7上的问题;解决它我手动检查所有的DLL依赖关系,并以正确的顺序逐一加载我的Java代码。

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

+0

感谢您的回复。我对Linux完全陌生。你能解释更多的解释吗?我没有在Ubuntu,Fedora等上安装任何可以顺利运行独立Java程序的东西。 ubuntu,fedora和redhat之间有什么区别吗?我是否需要安装某物以支持红帽中的Xuggler?顺便说一句,它与gcc/g ++有关吗? – Grace

+0

在shell中验证你的Fedora,Ubuntu和Redhat之间的区别。输入'echo $ PATH'来显示您的环境中包含哪些目录。如果你自己没有编译Xuggle,它与g ++/gcc无关。最可能的根本原因是安装在Redhat上的库与xuggles不兼容。 Fedora和Ubuntu可能安装了更新的版本。您应该验证xuggle 5.4的先决条件并检查Redhat是否符合要求。 – zeropouet

+0

我检查了我的Fedora上的PATH。 PATH中没有Xuggle库(.so)。但我可以成功转换视频。这是否意味着它与PATH配置无关? – Grace

相关问题