尝试加载文件时出现JMagick错误 - UnsatisfiedLink

时间:2010-08-24 03:38:17

标签: java imagemagick jmagick

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

尝试使用代码时

ImageInfo info;

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

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

为什么会发生这种情况的任何想法?我在OSX上使用eclipse

2 个答案:

答案 0 :(得分: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选项,必须在classname之前。

答案 1 :(得分:2)

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