如何安装/配置Xuggle以获取UnsatisfiedLinkError?

我刚刚开始使用Xuggle并将所有内容下载到Eclipse中,并且我将它们包含在Referenced Libraries中,但我做了一个非常简单的测试,

package com.xuggle.xuggler.demos; import com.xuggle.xuggler.IContainer; public class getContainerInfo { public static void main (String [] args){ IContainer myContainer = IContainer.make(); } } 

它会引发一堆错误,

 2011-06-12 16:26:52,142 [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:1734) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1028) at com.xuggle.ferry.JNILibraryLoader.loadLibrary0(JNILibraryLoader.java:265) at com.xuggle.ferry.JNILibraryLoader.loadLibrary(JNILibraryLoader.java:168) at com.xuggle.xuggler.XugglerJNI.(XugglerJNI.java:19) at com.xuggle.xuggler.IContainer.(IContainer.java:1457) at com.xuggle.xuggler.demos.getContainerInfo.main(getContainerInfo.java:9) 

以下是我发现的内容。 存在混淆,因为从Xuggler 5.2及更高版本开始,您不需要安装它并设置环境变量。

在网上查找答案时,您可能会发现旧版本和新版本的混合步骤会让您感到困惑。 以下(B)的步骤不再适用。

我自己最终通过确保jar在J2EE容器lib中,并从Xuggler 5.2升级到5.4来解决问题。 此后,链接错误消失了。


(A)这适用于所有版本
来自Xuggler Docs :

将Xuggler与J2EE容器一起使用
Xuggler包含Native Code,因此需要使用Tomcat,Jetty或Glassfish等J2EE容器进行特殊安装。 它必须安装在J2EE容器加载它的位置,而不是特定的Web应用程序(除非您可以保证您的应用程序是服务器中唯一将加载Xuggler的应用程序)。 您必须查找特定容器的特定文档,但作为示例,对于Tomcat,请确保将xuggle-xuggler.jar文件安装到$ CATALINA_HOME / shared / lib。 请参阅tomcat JNI备注的原因。


(B)这仅适用于XUGGLER PRE 5.2
来自: Xuggler Faq :

java.lang.UnsatisfiedLinkError有什么用?
这意味着Java无法找到Xuggler本机库。 检查以下内容:
你安装了Xuggler吗?
如果没有,请按照此处的说明操作

  • 是否定义了环境变量XUGGLE_HOME并指向您的Xuggler安装目录(通常是Windows上的C:\ Program Files \ Xuggle或Linux / Mac上的/ usr / local)?
  • 如果您在Windows上安装,安装后是否重新启动? 您的PATH环境变量是否包含Windows上的%XUGGLE_HOME%\ bin或Linux / Mac上的$ XUGGLE_HOME / bin?
  • 您的PATH环境变量是否包含Windows上的%XUGGLE_HOME%\ lib?
  • 您的LD_LIBRARY_PATH环境变量是否包含Linux上的$ XUGGLE_HOME / lib?
  • 您的DYLD_LIBRARY_PATH环境变量是否包含Mac OS-X上的$ XUGGLE_HOME / lib?
  • 您使用的是32位Java JVM,还是64位版本的Xuggler? 或者是64位版本的Java JVM,还是32位版本的Xuggler? 不幸的是,这不会奏效。 您需要确保匹配每个版本的“位数”。 抱歉。 如果解决这些问题无法解决问题,请通过支持选项与我们联系。

问题是我没有重启。 Mtyson在他的回答中包含了这个,所以他是对的。