ImageMagick and JMagick install on Mac OSX
2013-08-01 17:49
776 查看
接的遗留代码,在本地运行,有jmagick-6.4.0.jar 但是出现错误:
javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class magick.ImageInfo
main里新建一个ImageInfo 则出现错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no JMagick in java.library.path
按照坑爹的官方文档根本装不上
按照github有个哥们儿写的wiki: (https://gist.github.com/kei2100/4688805)
1、先装了brew,装了两次才装上 ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
Homebrew的原则与port恰恰相反,它尽可能地利用系统自带的各种库,使得软件包的编译时间大为缩短;同时由于几乎不会造成冗余,软件包的管理也清晰、灵活了许多。Homebrew的另一个特点是使用Ruby定义软件包安装配置(叫做formula),定制非常简单。
2、brew install imagemagick --disable-openmp
imagemagick安装也顺利
3、安装jmagick就各种困难
wget http://downloads.jmagick.org/6.4.0/jmagick-6.4.0-src.tar.gz
tar xfz jmagick-6.4.0-src.tar.gz
mv 6.4.0 jmagick-6.4.0
cd jmagick-6.4.0
./configure --with-java-home=/System/Library/Frameworks/JavaVM.framework/Versions/Current --with-magick-home=/usr/local/Cellar/imagemagick/6.7.1-1/
首先是默认的osx jdk里不含 include目录导致无法加载jni.h ,于是从测试环境服务器 include 包 整个压缩下来放到本地 magick-home 找对位置, ok, configure通过
4、make错误 :
../../Make.rules:175: *** missing separator. Stop.
解决方案:
On line 175 and 176 of the Make.rules file, there are 4 spaces at the start of the line instead of a tab - replace the spaces with a tab and make will succeed.
很坑爹,这个错误也没人反馈没人改
安装成功
/usr/bin/install -c -d /usr/local/lib
/bin/sh /data1/xindong-dev/installer/jmagic/6.4.0/libtool --mode=install /usr/bin/install -c /data1/xindong-dev/installer/jmagic/6.4.0/lib/libJMagick-6.4.0.so /usr/local/lib
/usr/bin/install -c /data1/xindong-dev/installer/jmagic/6.4.0/lib/libJMagick-6.4.0.so /usr/local/lib/libJMagick-6.4.0.so
如果有libJMagick-6.4.0.so是否可以直接放到lib目录?
-rwxr-xr-x 1 root admin 125K 8 1 17:26 libJMagick-6.4.0.so
lrwxr-xr-x 1 root admin 21B 8 1 17:26 libJMagick.so -> ./libJMagick-6.4.0.so
5、 ln
sudo ln -s /usr/local/lib/libJMagick.so /Library/Java/Extensions/libJMagick.jnilib
6、检验
java一般使用两个path:classpath 和 java.library.path
classpath是指向jar包的位置
java.library.path是非java类包的位置如(dll,so)
在IDEA里发现仍出现错误 在run 的 vm option设置 -Djava.library.path=/usr/local/lib/
出错:Exception in thread "main" java.lang.UnsatisfiedLinkError: no JMagick in java.library.path
更改为 -Djava.library.path=/Library/Java/Extensions/ 或者 /etc/profile 加入: export PATH=$PATH:/Library/Java/Extensions/
正常运行
在tomcat中 首先/etc/profile 设置PATH export PATH=$PATH:/Library/Java/Extensions/
catalina.sh 加入-Djmagick.systemclassloader=no 才可正常运行
javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class magick.ImageInfo
main里新建一个ImageInfo 则出现错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no JMagick in java.library.path
按照坑爹的官方文档根本装不上
按照github有个哥们儿写的wiki: (https://gist.github.com/kei2100/4688805)
1、先装了brew,装了两次才装上 ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
Homebrew的原则与port恰恰相反,它尽可能地利用系统自带的各种库,使得软件包的编译时间大为缩短;同时由于几乎不会造成冗余,软件包的管理也清晰、灵活了许多。Homebrew的另一个特点是使用Ruby定义软件包安装配置(叫做formula),定制非常简单。
2、brew install imagemagick --disable-openmp
imagemagick安装也顺利
3、安装jmagick就各种困难
wget http://downloads.jmagick.org/6.4.0/jmagick-6.4.0-src.tar.gz
tar xfz jmagick-6.4.0-src.tar.gz
mv 6.4.0 jmagick-6.4.0
cd jmagick-6.4.0
./configure --with-java-home=/System/Library/Frameworks/JavaVM.framework/Versions/Current --with-magick-home=/usr/local/Cellar/imagemagick/6.7.1-1/
首先是默认的osx jdk里不含 include目录导致无法加载jni.h ,于是从测试环境服务器 include 包 整个压缩下来放到本地 magick-home 找对位置, ok, configure通过
4、make错误 :
../../Make.rules:175: *** missing separator. Stop.
解决方案:
On line 175 and 176 of the Make.rules file, there are 4 spaces at the start of the line instead of a tab - replace the spaces with a tab and make will succeed.
很坑爹,这个错误也没人反馈没人改
安装成功
/usr/bin/install -c -d /usr/local/lib
/bin/sh /data1/xindong-dev/installer/jmagic/6.4.0/libtool --mode=install /usr/bin/install -c /data1/xindong-dev/installer/jmagic/6.4.0/lib/libJMagick-6.4.0.so /usr/local/lib
/usr/bin/install -c /data1/xindong-dev/installer/jmagic/6.4.0/lib/libJMagick-6.4.0.so /usr/local/lib/libJMagick-6.4.0.so
如果有libJMagick-6.4.0.so是否可以直接放到lib目录?
-rwxr-xr-x 1 root admin 125K 8 1 17:26 libJMagick-6.4.0.so
lrwxr-xr-x 1 root admin 21B 8 1 17:26 libJMagick.so -> ./libJMagick-6.4.0.so
5、 ln
sudo ln -s /usr/local/lib/libJMagick.so /Library/Java/Extensions/libJMagick.jnilib
6、检验
java一般使用两个path:classpath 和 java.library.path
classpath是指向jar包的位置
java.library.path是非java类包的位置如(dll,so)
在IDEA里发现仍出现错误 在run 的 vm option设置 -Djava.library.path=/usr/local/lib/
出错:Exception in thread "main" java.lang.UnsatisfiedLinkError: no JMagick in java.library.path
更改为 -Djava.library.path=/Library/Java/Extensions/ 或者 /etc/profile 加入: export PATH=$PATH:/Library/Java/Extensions/
正常运行
在tomcat中 首先/etc/profile 设置PATH export PATH=$PATH:/Library/Java/Extensions/
catalina.sh 加入-Djmagick.systemclassloader=no 才可正常运行
相关文章推荐
- Install ImageMagick (Image Manipulation) Tool on RHEL/CentOS and Fedora 【转】
- install ImageMagick on Ubuntu
- Installing nginx and php-fpm on Mac OSX 10.8 using ports
- install opencv3 with python2.7 bindings on Mac using Hombrew and git
- Install socat on Mac OSX
- Install and config Redis on Mac OS X via Homebrew
- The Layout Process on Mac OSX and iOS
- install ipython and readline on mac
- Install PEAR and PECL on Mac OS X
- How To Install Maven On Mac OSX
- Install ideviceinstaller on Mac OSX
- Install and Use GNU Command Line Tools on Mac OS X
- Install mcrypt for php on Mac OSX 10.10 Yosemite for a Development Server
- How to Install mcrypt for php on Mac OSX Lion 10.8 & 10.7 Development Server
- How to Install Apache Tomcat 8 (on Windows, Mac OS X, Ubuntu) and Get Started with Java Servlet Prog
- Set up SSH for Git and Mercurial on Mac OSX/Linux
- Build and Install cx_Oracle on Mac Leopard Intel
- 在OSX狮子(Lion)上安装MYSQL(Install MySQL on Mac OSX)
- Install and config Redis on Mac OS X via Homebrew
- Mac下boost的安装与使用 Install and use boost library on Mac