ImageMagick and JMagick install on Mac OSX

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏cloudskyme

企业级集成和ESB

ESB是什么? ESB是一个主要依赖XML消息交换的企业级消息系统,这种消息继而被智能的通过一种非集中式的架构路由和转换。 开源的ESB? Mule,Servi...

5677
来自专栏向治洪

即时通讯软件openfire+spark+smack

所以我基本上分为三篇文章来介绍此类软件的开发: 第一篇是关于XMPP 协议是啥,IM 是啥以及一个比较有名的开源实现,该开源实现包括三个部分(Spark、Sma...

4905
来自专栏北京马哥教育

Pipenv:官方推荐的python包管理工具

Pipenv - 官方推荐的的python包管理工具。 Pipenv是一款旨在将所有包管理工具(如bundler, composer, npm, cargo...

4227
来自专栏java一日一条

SSH框架总结

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于...

1954
来自专栏小巫技术博客

Bugly使用篇之Java错误堆栈还原

1603
来自专栏用户2442861的专栏

使用IntelliJ IDEA开发SpringMVC网站(一)开发环境

访问GitHub下载最新源码:https://github.com/gaussic/SpringMVCDemo

7081
来自专栏杨建荣的学习笔记

有趣的linux命令总结(78天)

linux命令可以简化我们工作中的许多任务。关于Linux这个主题已经考虑很久了,也还是在不断的完善中,在自己的实验和各种资料的整理中,认为还是一些不错的命令。...

2935
来自专栏zhisheng

日志工具现状调研

  针对这类问题,对当前java比较流行的一些日志工具进行了调研,以期能够在未来的开发使用中做到全组代码风格统一,日志写得好对于我们开发调试,线上问题追踪等都有...

1852
来自专栏杨建荣的学习笔记

有趣的linux命令总结(78天)

linux命令可以简化我们工作中的许多任务。关于Linux这个主题已经考虑很久了,也还是在不断的完善中,在自己的实验和各种资料的整理中,认为还是一些不错的命令。...

37512
来自专栏耕耘实录

再议Linux的禁ping设置——以CentOS7.4为例

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

2501

扫码关注云+社区

领取腾讯云代金券