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

Jam*_*mes 7 java imagemagick jmagick

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

在尝试使用代码时

ImageInfo info;

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

    } catch (MagickException e) {
      logger.error(InsightsHelper.getStackTrace(e));
    }
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*n C 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/ .... 
    
    Run Code Online (Sandbox Code Playgroud)

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