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

Imagemagick 正在设置jmagick项目:无法初始化类magick.ImageInfo,imagemagick,jmagick,Imagemagick,Jmagick,因此,我克隆了repo(),构建并将生成的两个文件复制到一个目录中: /path/to/project/lib/jmagick-6.7.7.jar /path/to/project/lib/libJMagick-6.7.7.so 我还安装了最新的ImageMagick,由于我使用的是OSX,因此我使用了: brew安装imagemagick 我有版本:imagemagick-6.9.3-6 当我运行应用程序并首次尝试实例化ImageInfo对象时,会出现以下异常: java.lang.Unsat

因此,我克隆了repo(),构建并将生成的两个文件复制到一个目录中:

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

我还安装了最新的ImageMagick,由于我使用的是OSX,因此我使用了:

brew安装imagemagick

我有版本:imagemagick-6.9.3-6

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

java.lang.UnsatifiedLink错误:java.library.path中没有JMagick

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

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


我的想法和头发都快用完了。

经过一番愚蠢的挖掘(这确实应该有更好的记录),我让它运行起来了

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

如前所述,您必须指定以下系统属性:

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

该文件必须命名为libJMagick.so或libJMagick.dylib。Java的类加载器只查找名称System.loadLibrary is give,该名称在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>

杰马吉克
杰马吉克
6.7.7
系统
/路径/to/jar/jmagick-6.7.7.jar
祝大家好运