java通过ImageMagick处理图片遇到问题:
下面异常都是我一个一个遇到的:
异常1:
Exception in thread "main" java.lang.UnsatisfiedLinkError: F:\Windows\System32\jmagick.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 Files\Java\jdk1.6.0_45_32\bin\jmagick.dll: Can't find dependent libraries
原因:没有找到jmagick.dll依赖相关的dll库
解决办法:1.直接把ImageMagick-6.3.9-Q8目录下的文件复制到jdk1.6.0_45_32\bin目录下(如果有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,后面如果发现有解决这个问题的办法在继续完善。