正在设置jmagick项目:无法初始化类magik.图像信息



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

/路径/to/project/lib/jmagick-6.7.7.jar
/路径/to/project/lib/libJMagick-6.7.7.so

我还安装了最新的ImageMagick,由于我在OSX上,我使用了:

brew安装imagemagik

我有版本:imagemagick-6.9.3-6

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

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

还有一点信息,我按照docker的说明在存储库中构建了代码,所以它是在ubuntu中构建的。我不知道这是不是个问题。我没有得到一个类未找到的异常,所以我不得不假设罐子是好的。我的java.library.path如下:

"java.library.path"->"/path/to/project/lib"

我快没主意了。

经过大量的挖掘(这确实应该有更好的记录),我开始运行了。

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

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

-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>

祝大家好运

最新更新