LutosX 2011-10-24
最近接手一个旧的项目,图片服务器,主要是别的服务器去下载图片,图片格式根据大小,色数去转换,需要用到ImageMagick去转换,在部署在LInux64位的服务器上时碰到的一些问题,下面把环境安装过程中遇到的问题整理下。我的linux版本是:
LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
DistributorID:CentOS
Description:CentOSrelease5.5(Final)
Release:5.5
Codename:Final
我安装的ImageMagick 是6.4版本,对应的Jmagic版本也是6.4版(版本一定要对应,好像不对应会有问题出现)。注意:JDK版本(1.6的64位JDK),我在这个问题上出现了很郁闷的事情,我不知道是不是由于JDK位数的影响,但是我把32位的换成64位的机器就可以了.
下面开始安装
1:先去下载安装包
下载地址:wget http://downloads.jmagick.org/6.4.0/jmagick-6.4.0-src.tar.gz
wget http://downloads.jmagick.org/6.4.0/ImageMagick-6.4.0-0.tar.gz
2: 安装ImageMagick
tar xzvf ImageMagick-6.4.0-0.tar.gz;
cd ImageMagick-6.4.0
./configure --prefix=/usr/local/ImageMagick.6.4 --enable-shared --without-perl
这里可能会报 configure: error: no acceptable C compiler found in $PATH
主要是gcc没装,去安装这个组件
可以输入命令 yum install gcc
make
make install
安装完成后,测试是否成功需要去配置环境变量
vim /etc/profile
在文件最下面加上下面的内容:
export PATH=$PATH:/usr/local/ImageMagick.6.4/bin
source /etc/profile
然后测试命令 convert -version 成功出现版本信息证明Ok了
3:安装并配置JMagick
tar xzvf jmagick-6.4.0-src.tar.gz
cd 6.4.0
./configure --with-java-home=此处为JAVA_HOME目录 --with-magick-home=/usr/local/ImageMagick.6.4
make
make install
cp /usr/local/lib/libJMagick-6.4.0.so 此处为JAVA_HOME目录/jre/lib/amd64/libJMagick.so
配置环境变量如下
vim /etc/profile
添加
export LD_LIBRARY_PATH=:/usr/local/lib:/usr/local/ImageMagick.6.4/lib
export DYLD_LIBRARY_PATH=:/usr/local/lib:/usr/local/ImageMagick.6.4/lib
export CLASSPATH=$CLASSPATH:/usr/local/lib然后执行下面的命令
source /etc/profile
OK安装完成
安装成功后可
java.lang.NoClassDefFoundError: Could not initialize class magick.ImageInfo能会遇到的问题:
解决办法:
1) copied jmagick.jar to JAVA_HOME/jre/lib/ext
2)copiedjmagick.jartotomcatcommonlib&webapp/web-inf/lib
3)setLD_LIBRARY_PATH=/usr/local/libintomcatstartupscript
4)triedsetting-Djava.library.path=/usr/local/lib-Djmagick.systemclassloader=nointomcatstartupscript
暂时就碰到这些问题,大家可以对有些不对的地方进行补充,共同进步