java.lang.UnsatisfiedLinkError:java.library.path中的no xuggle-xuggler

时间:2011-09-14 17:54:20

标签: java linux eclipse xuggle xuggler

我正在使用Ubuntu 11.04和Eclipse。我成功安装了Xuggler,我在FAQ中检查了环境变量以及与linux相关的所有内容:http://wiki.xuggle.comFrequently_Asked_Questions#What.27s_up_with_java.lang.UnsatisfiedLinkError.3F

我还根据他们的教程设置了Eclipse: http://xuggle.wordpress.com/2009/01/23/how-to-write-your-first-xuggler-application-in-eclipse/

每当我尝试运行任何使用Xuggler的代码时,都会出现以下错误:

2011-09-14 14:17:30,093 [main] ERROR com.xuggle.ferry.JNILibraryLoader - Could not load library: xuggle-xuggler; version: 3; Visit http://www.xuggle.com/xuggler/faq/ to find common solutions to this problem
Exception in thread "main" java.lang.UnsatisfiedLinkError: no xuggle-xuggler in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
    at java.lang.Runtime.loadLibrary0(Runtime.java:840)
    at java.lang.System.loadLibrary(System.java:1047)
    at com.xuggle.ferry.JNILibraryLoader.loadLibrary0(JNILibraryLoader.java:265)
    at com.xuggle.ferry.JNILibraryLoader.loadLibrary(JNILibraryLoader.java:168)
    at com.xuggle.xuggler.XugglerJNI.<clinit>(XugglerJNI.java:19)
    at com.xuggle.xuggler.IContainer.<clinit>(IContainer.java:1457)
    at com.xuggle.mediatool.MediaReader.<init>(MediaReader.java:137)
    at com.xuggle.mediatool.ToolFactory.makeReader(ToolFactory.java:77)
    at recode.main(recode.java:16)

那么,如何解决这个问题呢?

4 个答案:

答案 0 :(得分:4)

我从xuggler-users google小组得到了答案/解决方案,归功于Navin Bhutada:

solve it by including the Xuggle variables before runing the netbeans like this:
export XUGGLE_HOME=/home/xyzuser/xuggler 
export PATH=$XUGGLE_HOME/lib:$XUGGLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$XUGGLE_HOME/lib:$LD_LIBRARY_PATH
/usr/share/netbeans/6.9/bin/./netbeans"

我使用eclipse,所以我只是更改了最后一行,通过命令行从其文件夹运行eclipse,一切正常。

注意:如果我导出变量并尝试从桌面上的快捷方式打开eclipse,它就不起作用。快捷方式指向我从命令行运行的同一文件

TLDR: 安装后得到的导出变量 从终端运行Eclipse。

答案 1 :(得分:3)

您只需根据您的操作系统从此页面下载正确的Xuggle: http://xuggle.googlecode.com/svn/trunk/repo/share/java/xuggle/xuggle-xuggler/5.2/ 然后将lib文件解压缩到项目主文件夹。

答案 2 :(得分:1)

我发现尽管我可能正确设置了环境变量,但在执行时明确地在java.library.path中包含Xuggler install dir可以解决这个问题。

即。 java -Djava.library.path="$XUGGLE_HOME" myExecutable

答案 3 :(得分:0)

原因可能是依赖项jar或版本冲突不可用。

在classpath中添加以下jar对我来说很好:

xuggle-xuggler-5.4.jar
SLF4J-API-1.6.4.jar
的logback核-1.0.0.jar
的logback-经典1.0.0.jar

注意:使用netbeans中的“添加jar /文件夹”选项将它们添加到库文件夹中。