所以我克隆了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中”
我是出于想法和头发。
答案 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>
祝大家好运