2013-06-27 32 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

相關問題