Java使用jmagick处理图片遇到的异常
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,后面如果发现有解决这个问题的办法在继续完善。
Java使用jmagick处理图片遇到的异常的更多相关文章
- java中常见的几种异常
算术异常类:ArithmeticExecption空指针异常类:NullPointerException类型强制转换异常:ClassCastException数组负下标异常:NegativeArray ...
- AES加密时的 java.security.InvalidKeyException: Illegal key size 异常
程序代码 // 设置加密模式为AES的CBC模式 Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); SecretKe ...
- 深入理解java虚拟机系列(一):java内存区域与内存溢出异常
文章主要是阅读<深入理解java虚拟机:JVM高级特性与最佳实践>第二章:Java内存区域与内存溢出异常 的一些笔记以及概括. 好了開始.假设有什么错误或者遗漏,欢迎指出. 一.概述 先上 ...
- spring+ibatis问题1—— 程序报错:java.sql.SQLException: Io 异常: Connection reset by peer, socket write error; ”或“java.sql.SQLException 关闭的连接”异常
转自:http://blog.sina.com.cn/s/blog_1549fb0710102whz2.html spring+ibatis程序测试时报错:java.sql.SQLException: ...
- JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别
JAVA之旅(十)--异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别 不知不觉,JAVA之旅这个系列已经更新到第十篇了,感觉如梦如幻,时间 ...
- 《深入理解Java虚拟机》-----第2章 Java内存区域与内存溢出异常
2.1 概述 对于从事C.C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又是执行最基础工作的劳动人民——拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任 ...
- 《深入理解java虚拟机》第二章 Java内存区域与内存溢出异常
第二章 Java内存区域与内存溢出异常 2.2 运行时数据区域
- Java内存区域与内存溢出异常--HotSpot虚拟机对象探秘
以常用的HotSpot和常用的Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配.布局和访问的全过程 1.对象的创建 ①虚拟机遇到一条new指令后,首先将去检查这个指令的参数是否能够在 ...
- Java虚拟机--Java内存区域的划分和异常
Java内存区域的划分和异常 运行时数据区域 JVM在运行Java程序时候会将内存划分为若干个不同的数据区域. 程序计数器 线程私有.可看作是当前线程所执行的字节码的行号指示器,字节码解释器的工作是通 ...
随机推荐
- C#中SortedList类的使用
C#中SortedList类 命名空间:System.Collections 程序集:mscorlib(在mscorlib.dll中) 语法:public class SortedList : IDi ...
- 文件流:"fopen","fclose",“ftell”"fseek","fgets","fprintf" ,“feof”,"fwrite","fread"
char const* filename="D:/hello.txt"; 路径名使用的是“/”或者使用 转义字符“\\”: "fopen", FILE *fp= ...
- oc的插件
umbra https://umbra3d.com/ 很不错
- ElasticSearch 检索文档
1.检索文档 现在Elasticsearch中已经存储了一些数据,我们可以根据业务需求开始工作了.第一个需求是能够检索单个员工的信息. 这对于Elasticsearch来说非常简单.我们只要执行HTT ...
- CSU - 1542 Flipping Parentheses (线段树)
CSU - 1542 Flipping Parentheses Time Limit: 5000MS Memory Limit: 262144KB 64bit IO Format: %lld ...
- VirtualBox下Linux(centos)扩展磁盘空间
最近在Linux里做文件合并,做分词,磁盘空间不够,把扩展磁盘空间方法记录一下. 1.在VirtualBox安装路径下(例如C:\Program Files\Oracle\VirtualBox> ...
- Swif语法基础 要点归纳(一)
常量和变量 用let声明常量 let m = 20 用var声明变量 var n = 0 类型推导机制 声明常量或变量时.能够不指定常量/变量类型,编译器会依据 ...
- MFC对话框贴图基础上控件Stasic变成透明的
对应WM_CTLCOLOR函数 加入下面代码: HBRUSH CMFCApplication2Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) ...
- cordova与ios native code交互的原理
非常早曾经写了一篇博客,总结cordova插件怎么调用到原生代码:cordova调用过程,只是写得太水.基本没有提到原理.近期加深了一点理解,又一次补充说明一下 js调用native 以下是我们产品中 ...
- Roboware 下打包成so 文件并引用
一.生成.so文件 在ros中编译.so文件,如同在vs中编译C++版的dll文件.具体步骤如下: 步骤1: 首先建立.h文件和一个.cpp文件(该.cpp文件就是此次封装的内容) 步骤2: ...