7

java.lang.UnsatisfiedLinkError:java.lang.System 的 java.lang.Runtime.loadLibrary0(Runtime.java:823) 的 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1754) 的 java.library.path 中没有 JMagick .loadLibrary(System.java:1045)

尝试使用代码时

ImageInfo info;

    try {
      info = new ImageInfo();
      //image = new MagickImage(info);

    } catch (MagickException e) {
      logger.error(InsightsHelper.getStackTrace(e));
    }

任何想法为什么会这样?我在 OSX 上使用 Eclipse

4

2 回答 2

2

简单的答案是 JVM 试图找到 JMagick 使用的本机库,但失败了。要么您根本没有本机库,要么它不是 JVM 正在寻找它的地方。


我从这里下载了一个 osx 软件包:joggame.com/software/jmagick.html 运行了 configure/make/make install 并且一切顺利。我还需要为 java 设置什么才能找到它?

您需要找出“make install”安装本机 DLL 的位置并告诉 Java 在正确的位置查找它:

  • 如果您从 Eclipse 中启动,请按照 trigoman 的答案中的过程进行操作。

  • 如果您从命令行直接或通过脚本启动,则需要在java命令中包含此选项(或等效选项):

        java -Djava.library.path=/some/folder/ .... 
    

    请注意,这是一个 JVM 选项,必须放在类名之前。

于 2010-08-24T03:48:14.250 回答
2

您需要将编译的二进制文件添加到路径中,以便 Eclipse 可以看到它。首先将 JMagick.jar 添加为库,然后在项目属性-> Java 构建路径-> 库中,单击您添加到此项目的 jmagick jar 并编辑“Native library”的位置,在本例中为它将是 libJMagick-6.2.6.dylib 所在的位置,因为这就是您提供的链接所说的。

于 2011-09-16T05:58:00.053 回答