一、軟件列表è下載地址:http://www.imagemagickk.org/download/delegates/
- jpegsrc.v8.tar.gz
- zlib-1.2.7.tar.gz
- libpng-1.5.10.tar.gz
- tiff-3.8.2.tar.gz
- freetype-2.4.9.tar.gz
- libtiff-lzw-compression-kit-1.5.tar.gz
- Imagemagickk-6.5.3-10.tar.gz
- jmagick-6.4.0-src.tar.gz
二、安裝過程
注意:使用root用戶安裝,首先使用yum install gcc*或者yum update更新gcc
調用java –version,必須顯示如下信息
java version "1.6.0"
OpenJDK Runtime Environment (build 1.6.0-b09)
OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)
1、安裝jpeg支持軟件jpegsrc.v8.tar.gz
tar zxvf jpegsrc.v8.tar.gz
cd jpeg-8/
./configure --prefix /usr/local/tools/jpeg-8 --enable-shared --enable-static
make
make install
2、安裝png支持軟件libpng-1.5.10.tar.gz(安裝支持軟件zlib-1.2.3)
tar zxvf zlib-1.2.7.tar.gz
cd zlib-1.2.7
CFLAGS="-O3 -fPIC" ./configure --prefix /usr/local/tools/zlib-1.2.7 //使用64位元的方法進行編譯
make
make install
tar zxvf libpng-1.5.10.tar.gz
cd libpng-1.5.10
./configure --prefix /usr/local/tools/libpng-1.5.10
make
make install
如果安裝出錯報錯:configure: error: zlib not installed
.進入zlib的源文件目錄,執行命令 make clean,清除zlib;
2.重新配置 ./configure,後面不要接--prefix參數 CFLAGS="-O3 -fPIC" ./configure;
3.編輯 && 安裝;
4.進入libpng目錄,執行命令 ./configure --prefix=/usr/local/libpng;
5.編譯 && 安裝;
6.安裝成功;
3、安裝tiff支持軟件
tar zxvf tiff-3.8.2.tar.gz
cd tiff-3.8.2
./configure --prefix /usr/local/tools/tiff-3.8.2
make && make install
4、安裝freetype字體支持軟件freetype-2.4.9.tar.gz
tar zxvf freetype-2.4.9.tar.gz
cd freetype-2.4.9
./configure --prefix=/usr/local/tools/freetype-2.4.9
make
make install
5、安裝Imagemagick-6.5.3-10.tar.gz[安裝高版本的再安裝JMagic時會報錯]
tar zvxf Imagemagick-6.5.3-10.tar.gz
cd Imagemagickk-6.5.3-10
./configure --prefix=/usr/local/tools/Imagemagick --enable-share LDFLAGS="-L/usr/lib" CPPFLAGS="-I/usr/include" --enable-lzw
make
make install
6、JMagick是一個開源API,利用JNI(Java Native Interface)技術實現了對ImagemagickkAPI的Java訪問接口。安裝jmagick-6.4.0-src.tar.gz
env 查看JAVA_HOME,如果沒有
vi /etc/profile
export JAVA_HOME=/export/home/weblogic/Oracle/Middleware/jrockit_160_17_R28.0.0-679
export CLASSPATH=.:$JAVA_HOME/lib/:$ CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
調用source /etc/profile,使修改生效
tar xvfz jmagick-6.4.0-src.tar.gz
cd 6.4.0
./configure --prefix=/usr/local/tools/jmagick-6.4.0 --with-magick-home=/usr/local/tools/Imagemagick --enable-share --enable-static
make
make install
將JMagic庫加入到共享庫中
vi /etc/profile
Mac OS時:
export DYLD_LIBRARY_PATH=
$DYLD _LIBRARY_PATH:/usr/local/jmagick-6.4.0/lib:/usr/local/tools/Imagemagickk/lib
Linux系統時:
export PATH=$PATH:/usr/local/tools/Imagemagick/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/tools/jmagick-6.4.0/lib:/usr/local/tools/Imagemagick/lib
export DYLD_LIBRARY_PATH=:/usr/local/tools/jmagick-6.4.0/lib:/usr/local/tools/Imagemagick/lib
export CLASSPATH=$CLASSPATH:/usr/local/tools/jmagick-6.4.0/lib
source /etc/profile
Chown –R weblogic:dba 軟件安裝目錄
三、在JAVA工程中使用Jmagick壓縮生成圖片
將jmagick-6.4.0.jar拷貝至jre的lib /ext下,
比如 /export/home/weblogic/Oracle/Middleware/jrockit_160_17_R28.0.0-679/jre/lib/ext/jmagick-6.4.0.jar
應用中添加System.setProperty("jmagick.systemclassloader","no");
更改系統jdk:sudo update-alternatives --config java
運行 convert 測試安裝是否成功
四、常見問題
Exceptions/Errors:
java.lang.NoClassDefFoundError: Could not initialize class magick.ImageInfo
java.lang.UnsatisfiedLinkError: no JMagick in java.library.path
Things I've tried so far:
1) copied jmagick.jar to JAVA_HOME/jre/lib/ext
2) copied jmagick.jar to tomcat(your server) common lib & webapp/web-inf/lib
3) set LD_LIBRARY_PATH=/usr/local/lib in tomcat startup script
4) tried setting -Djava.library.path=/usr/local/lib -Djmagick.systemclassloader=no in tomcat startup script
注:
用非root賬號啓動 weblogic時 在啓動域中的 vi /bin/ startWebLogic.sh 添加CLASSPATH=${CLASSPATH}:/usr/local/tools/jmagick-6.4.0/lib:/usr/local/tools/Imagemagick/lib解決java.lang.UnsatisfiedLinkError: no JMagick in java.library.path問題
if [ "${MEDREC_WEBLOGIC_CLASSPATH}" != "" ] ; then
if [ "${CLASSPATH}" != "" ] ; then
CLASSPATH="${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBLOGIC_CLASSPATH}"
else
CLASSPATH="${MEDREC_WEBLOGIC_CLASSPATH}"
fi
fi
CLASSPATH = ${CLASSPATH}:/usr/local/tools/jmagick-6.4.0/lib:/usr/local/tools/Imagemagick/lib
echo "."
echo "."
echo "JAVA Memory arguments: ${MEM_ARGS}"
echo "."
echo "WLS Start Mode=${WLS_DISPLAY_MODE}"
echo "."
echo "CLASSPATH=${CLASSPATH}"
echo "."
echo "PATH=${PATH}"
echo "."
"startWebLogic.sh" 188L, 5797C