接的遗留代码,在本地运行,有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  才可正常运行

ImageMagick and JMagick install on Mac OSX的更多相关文章

  1. Install Ansible on Mac OSX

    from: https://devopsu.com/guides/ansible-mac-osx.html and : https://devopsu.com/guides/ansible-post- ...

  2. Install MongoDB driver for PHP on XAMPP for Mac OSX

    试了不少方法,最后还是这个最有效. [转自:http://thatsimplecode.com/install-mongodb-driver-for-php-on-xampp-for-mac-osx] ...

  3. mac osx 系统 brew install hadoop 安装指南

    mac osx 系统 brew  install hadoop 安装指南   brew install hadoop 配置 core-site.xml:配置hdfs文件地址(记得chmod 对应文件夹 ...

  4. 在OSX狮子(Lion)上安装MYSQL(Install MySQL on Mac OSX)

    这篇文章简述了在Mac OSX狮子(Lion)上安装MySQL Community Server最新版本v10.6.7的过程. MySQL是最流行的开源数据库管理系统.首先,从MySQL的下载页面上下 ...

  5. mac osx 上面部署Django项目 apache+mysql+mod_wsgi

    1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...

  6. Mac OSX上的软件包管理工具,brew 即 Homebrew

    brew 即 Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便. brew类似ubuntu系统下的apt-get的功能. 安装 ...

  7. Installing Hadoop on Mac OSX Yosemite Tutorial Part 1.

    Installing Hadoop on Mac OSX Yosemite Tutorial Part 1. September 23, 2014 Marek 68 Comments Install ...

  8. 在Mac OSX 10.10 上安装opencv

    http://blog.csdn.net/wdkirchhoff/article/details/41910553 在Mac OSX上如果想使用OpenCV,可以通过自己手动编译源码的方式,但比较繁琐 ...

  9. XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装Xcode4.6.3(有图有真相)

    网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 在安装Xcode前, ...

随机推荐

  1. Oracle 存储过程异常处理

    Oracle 存储过程异常处理 1.异常的优点    如果没有异常,在程序中,应当检查每个命令的成功还是失败,如  BEGIN  SELECT ...  -- check for ’no data f ...

  2. 用Unity开发HTC VIVE——手柄控制篇

    写这篇文章的原因主要是因为现在虚拟现实非常的火爆但目前主流的虚拟现实设备(HTC VIVE)的教程却少的可怜,这个我深有体会.所以,我想将我平时开发中遇到的问题以及解决方法记录下来,分享给大家,若其中 ...

  3. laravel----------------自动生成模型,控制器,视图的操作步骤。

    首先要阅读这篇文章,你一定已经掌握了composer 和 artisan . 第一步,打开https://packagist.org/这个网址,在搜索框内输入way/generators 如图 第二步 ...

  4. Git 遇到了 early EOF index-pack failed 问题

    Git 遇到了 early EOF index-pack failed 问题 今天想 clone 一下 boost 在 github 的 repo,结果在 clone 的过程中遇到了下面的错误.我原本 ...

  5. Web动画API教程1:创建基本动画

    本人转载自: Web动画API教程1:创建基本动画

  6. Dynamics AX 2012 R2 耗尽用户

    有时,你想执行一些操作,但是这些操作必须让所有用户都登出后才能执行,例如加强安全设置,创建虚拟公司等.这时,你可以使用系统的耗尽用户(Darin Users)功能.下面跟随Reinhard一起,设置耗 ...

  7. IOS Xcode7 新建PCH文件

    第一步:新建文件找到iOS中的Othere点击PCH File 点击Next 第二步:修改文件名为当前工程名(一般与工程名同名),勾选Targets,点击create创建 第三步:如图选中红框中的路径 ...

  8. C#操作Dataset数据集与SQLite数据库

    近日有需要写点C#程序,有用到Dataset数据集和SQLite数据库,由于我从来就不擅长记各种编程语言的语法,所以在查阅一堆资料后,留下以下内容备忘:     一.SQLite操作,直接贴代码,很简 ...

  9. HTML5正则表单式验证电子邮件

    <input type="text" title="email" required pattern="[^@]+@[^@]+\.[a-zA-Z] ...

  10. oracle分区提高篇

      一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中.分区完全对应用透明. Or ...