我刚刚开始使用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.<clinit>(XugglerJNI.java:19)
at com.xuggle.xuggler.IContainer.<clinit>(IContainer.java:1457)
at com.xuggle.xuggler.demos.getContainerInfo.main(getContainerInfo.java:9)
答案 0 :(得分:10)
以下是我发现的内容。存在混淆,因为从Xuggler 5.2及更高版本开始,您不需要安装它并设置环境变量。
在网上查找答案时,您可能会因为找到旧版本和新版本的混合步骤而感到困惑。以下(B)的步骤不再适用。
我自己最终通过确保jar在J2EE容器lib中,并从Xuggler 5.2升级到5.4来解决问题。此后,链接错误消失了。
(A)这适用于所有版本
来自the Xuggler Docs:
将Xuggler与J2EE容器一起使用
Xuggler包含本机代码,因此需要使用J2EE容器(如Tomcat,Jetty或Glassfish)进行特殊安装。它必须安装在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?不幸的是,这不会奏效。你需要确保你匹配&#34; bitness&#34;每个版本。抱歉。 如果解决这些问题并不能解决问题,请通过支持选项与我们联系。
答案 1 :(得分:3)
问题是我没有重启。 Mtyson在他的回答中包括了这一点,所以他是正确的。