设置jmagick项目:无法初始化类magick.ImageInfo

时间:2016-04-16 18:19:50

标签: imagemagick jmagick

所以我克隆了repo(https://github.com/techblue/jmagick),构建并将生成的两个文件复制到一个目录中:

/path/to/project/lib/jmagick-6.7.7.jar
/path/to/project/lib/libJMagick-6.7.7.so

我还安装了最新的ImageMagick,因为我在OSX上,所以我这样做了:

brew install imagemagick

我有版本:imagemagick-6.9.3-6

当我运行我的应用程序并首先尝试实例化ImageInfo对象时,我得到以下异常:

java.lang.UnsatisfiedLinkError:java.library.path中没有JMagick

还有更多信息,我按照docker说明在存储库中构建了代码,因此它是在ubuntu中构建的。我不知道这是不是一个问题。我没有找到一个没有找到异常的类,所以我不得不假设jar很好。我的java.library.path看起来像这样:

“java.library.path” - > “/路径/到/项目/ lib中”

我是出于想法和头发。

1 个答案:

答案 0 :(得分:0)

经过一次愚蠢的挖掘(这确实应该更好地记录下来)之后,我开始运行了。

您必须在要使用它的系统上构建它。如果它是osx,你可能(虽然我不确定这部分是否必要)需要将生成的.so文件的扩展名更改为.dylib。

正如我所知,您必须指定以下系统属性:

-Djava.library.path = /路径/到/ LIB /文件

该文件必须命名为libJMagick.so或libJMagick.dylib。 Java的类加载器只查找System.loadLibrary给出的名称,该名称是jMagick jar中的jMagick。 Lib是由类加载器预先(我猜)。

我唯一没想过的东西,现在以防其他人想知道我是如何将jMagic.jar添加到类路径中的:

   <dependency>
        <groupId>jmagick</groupId>
        <artifactId>jmagick</artifactId>
        <version>6.7.7</version>
        <scope>system</scope>
        <systemPath>/path/to/jar/jmagick-6.7.7.jar</systemPath>
    </dependency>

祝大家好运