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

时间:2011-06-12 20:32:52

标签: java media xuggle

我刚刚开始使用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)

2 个答案:

答案 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在他的回答中包括了这一点,所以他是正确的。