0

所以我克隆了 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 上,所以我这样做了:

酿造安装 imagemagick

我有版本:imagemagick-6.9.3-6

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

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

还有一点信息,我按照 docker 指令在存储库中构建了代码,所以它内置在 ubuntu 中。我不知道这是否有问题。我没有找到类未找到异常,所以我必须假设 jar 没问题。我的 java.library.path 看起来像这样:

“java.library.path”->“/path/to/project/lib”

我几乎没有想法和头发。

4

1 回答 1

0

好吧,经过大量的挖掘(这真的应该更好地记录下来),我让它运行起来了。

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

和我一样,您必须指定以下系统属性:

-Djava.library.path=/path/to/lib/file

该文件必须命名为 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>

祝大家好运

于 2016-04-16T20:52:41.670 回答