【问题标题】:No xuggle in java.library.path on RedhatRedhat 上的 java.library.path 中没有 xuggle
【发布时间】:2013-06-27 08:13:34
【问题描述】:

我有一个独立的 Java 程序,它使用 Xuggle 进行视频转换。 Xuggle 的版本是 xuggle-xuggler-5.4.jar。我已将其添加到构建路径。

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)

有没有人可以帮助我解决这个问题? 我研究了很长时间,但没有任何线索...... 谢谢。

【问题讨论】:

    标签: java linux redhat xuggle


    【解决方案1】:

    检查您在 Redhat 上的 PATH。 Xuggle 库 (.so) 应该在调用您的 java 程序的进程的 PATH 中。

    问题也可能来自库依赖项。 我在Windows 7 上遇到过这个问题;为了解决这个问题,我手动检查所有 dll 依赖项,并以正确的顺序将它们一一加载到我的 Java 代码中。

    也可以尝试修改java库路径java -Djava.library.path=/path/to/xuggle_install

    【讨论】:

    • 感谢您的回复。我对 Linux 完全陌生。您能否详细解释一下解决方案?我没有在 Ubuntu、Fedora 等上安装任何可以顺利运行独立 java 程序的东西。 ubuntu,fedora和redhat之间有什么区别吗?我需要安装 sth 来支持 redhat 中的 Xuggler 吗?顺便说一句,它与 gcc/g++ 有关吗?
    • 在 shell 中验证您的 Fedora、Ubuntu 和 Redhat 之间的差异。键入echo $PATH 以显示您的环境中包含哪些目录。如果你没有自己编译 Xuggle,它与 g++/gcc 无关。最可能的根本原因是安装在 Redhat 上的库与 xuggles 的库不兼容。 Fedora 和 Ubuntu 可能安装了更新的版本。您应该验证 xuggle 5.4 的先决条件并检查 Redhat 是否满足这些先决条件。
    • 我在 Fedora 上检查了我的 PATH。 PATH 中没有 Xuggle 库(.so)。但我可以成功转换视频。是不是和PATH配置无关?
    • @Grace 我有同样的问题。在 Ubuntu 上工作正常,但在 Redhat 上不行。你解决了这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 2011-11-17
    • 2016-09-04
    • 2011-07-02
    • 2010-10-29
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多