Java使用jmagick处理图片遇到的异常

java通过ImageMagick处理图片遇到问题:

下面异常都是我一个一个遇到的:

异常1:

Exception in thread "main" java.lang.UnsatisfiedLinkError: F:WindowsSystem32jmagick.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

原因:我的jdk是64位的,而jmagick.dll是32位的,据说jmagick.dll没有64位的

解决办法:更换jdk,把jdk修改成32位的就好了

异常2:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no JMagick in java.library.path

原因:jmagick.dll没有在运行环境中

解决办法:把jmagick.dll放在运行所使用的jdk目录下的bin目录下面(为什么这里说运行所使用的,因为可以安装多个jdk版本,通过Myeclipse调试的时候可以选择jdk),如果是web程序在tomcat下面,可以把jmagick.dll放在tomat下bin目录或者tomcat运行所使用的jdk的bin目录

异常3:

Exception in thread "main" java.lang.UnsatisfiedLinkError: G:Program FilesJavajdk1.6.0_45_32injmagick.dll: Can't find dependent libraries

原因:没有找到jmagick.dll依赖相关的dll库

解决办法:1.直接把ImageMagick-6.3.9-Q8目录下的文件复制到jdk1.6.0_45_32in目录下(如果有tomcat,也可以复制到tomcat下),这种方式不推荐。2.在环境变量classpath中加入"G:Program Files (x86)ImageMagick-6.3.9-Q8",也就是ImageMagick-6.3.9-Q8的安装目录。

这里说明一下我最终成功的开发环境(因为环境不一样有的时候解决问题的方法也不一样,我之前就是是用网上的配置方式,无论如何不成功)

1.操作系统win8

2.32位的jdk1.6.0_45

3.apache-tomcat-6.0.35

遗留问题:总是觉得只能用32位的jdk不太方便,总不能为了这个而换成32位的jdk,后面如果发现有解决这个问题的办法在继续完善。

原文地址:https://www.cnblogs.com/andysd/p/3941737.html