试图加载文件时出现JMagick错误
java.lang.UnsatisfiedLinkError:java.lang.ClassLoader.loadLibrary(ClassLoader.java:1754)java.lang.Runtime.loadLibrary0(Runtime.java:823)java.lang.System中的java.library.path中的JMagick .loadLibrary(System.java:1045)
当试图使用代码时
ImageInfo info;
try {
info = new ImageInfo();
//image = new MagickImage(info);
} catch (MagickException e) {
logger.error(InsightsHelper.getStackTrace(e));
}
任何想法为什么发生这种情况? 我在OSX上使用eclipse
您需要将编译的二进制文件添加到路径中,以便Eclipse可以看到它。 首先将JMagick.jar添加为库,然后在项目属性 - > Java Build Path - > Libraries中,单击添加到此项目的jmagick jar,并编辑“Native library”的位置,在这种情况下这将是libJMagick-6.2.6.dylib所在的位置,因为这是您提供的链接所说的内容。
简单的答案是JVM试图找到由JMagick使用的本地库,并且失败。 您可能根本没有本地库,或者它不在JVM正在寻找的地方。
我从这里下载了一个osx软件包:joggame.com/software/jmagick.html运行configure / make / make install,一切顺利。 还有什么我必须设置为Java来找到它?
你需要弄清楚“make install”在哪里安装了本地DLL,并告诉Java在正确的位置寻找它:
如果您从Eclipse内启动,请按照trigoman答案中的步骤进行操作。
如果您直接或通过脚本从命令行启动,则需要在java
命令中包含此选项(或等效命令):
java -Djava.library.path=/some/folder/ ....
请注意,这是一个JVM选项,必须在类名之前。