接的遗留代码,在本地运行,有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. copy file to docker from realhost

    http://blog.e3rp4y.me/blog/2014/05/23/copy-file-from-host-to-docker.html --------------------------- ...

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

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

  3. java入门之从C#快速入门java

    可变参数: Void sum(int…list){}以“…”三个字为关键字 可变参数:以params为关键字 34 对异常的描述: java中,异常分为两种,运行时异常(也就是uncheckExcep ...

  4. Android开发新手学习总结(一)——使用Android Studio搭建Android集成开发环境

    [新手连载]一:使用Android Studio搭建Android集成开发环境http://bbs.itcast.cn/forum.php?mod=viewthread&tid=87055&a ...

  5. 递归函数 Python

    函数: def fact(n): if n==1: return 1 return n * fact(n-1) 递归过程: print(fact(5)) >>fact(5) >> ...

  6. 161221、bootstrap table 实例

    bootstrap table 封装了一套完善的数据表格组件,把下面的代码复制一下估计你需要的基本功能都有了,没有的再看看手册对比着我给的实例也能很快的熟悉了 客户端 <!DOCTYPE htm ...

  7. Java 多线程处理[全]

    http://blog.csdn.net/ghsau/article/details/7421217 Java线程(一):线程安全与不安全 http://blog.csdn.net/ghsau/art ...

  8. [课程设计]Scrum 3.1 多鱼点餐系统开发进度(第三阶段项目构思与任务规划)

    Scrum 3.1 多鱼点餐系统开发进度(第三阶段项目构思与任务规划) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到 ...

  9. Java 菜鸟学习之 script脚本语句

    脚本语句  一般分为  顺序语句   分支语句   循环语句 顺序语句  就是从上到下依次读取 分支语句 是if语句 if(判断条件) { 满足条件执行的语句 } else { 不满足条件执行的语句 ...

  10. LeetCode算法题解

    1.给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?(181) 解法一:举例说明,为了减少复杂度,就使用八位二进制吧. ...