LoginSignup
2
2

More than 5 years have passed since last update.

Mac OS XでJMagickを使う

Posted at

MacでJMagickを利用するJavaアプリケーションのローカル開発環境づくりで手間取ったのでメモしておく。

実施環境

  • Mac OS X El Capitan
  • Homebrew
  • Oracle Java 8

インストール手順

ImageMagickをインストールする

1. HomebrewでImageMagickをインストールする

※以下で表示される情報は実施時点のものです。

$ brew info imagemagick
imagemagick: stable 6.9.3-0 (bottled), HEAD

$ brew install imagemagick

JMagickをインストールする

1. ソースコードダウンロードする

http://www.jmagick.org/ からソースコードをダウンロードします。
実施時点では jmagick-6.4.0-src.tar.gz が最新でした。

2. ダウンロードしたソースコードを展開する

tar xzf jmagick-6.4.0-src.tar.gz

3. Make.rulesを書き換える

本来タブであるはずのインデントはスペースになっているせいで、ビルドが失敗します。
ソースは以下のstack overflowです。
http://stackoverflow.com/questions/14819033/jmagick-make-error

stack overflowのコメントどおり、175、176行目行頭のスペース4つをタブ1つに置き換えます。
以下が該当箇所(抜粋)です。

173:ifdef DARWIN
174:    # Mac OS X
175:    @-echo "Using install_name_tool..."
176:    @-/usr/bin/install_name_tool -id $(PROJ_BASE_DIR)lib/lib$(JNI_LIB_NAME)$(SHARED_LIB_EXT) $(PROJ_BASE_DIR)/lib/lib$(JNI_LIB_NAME)-$(MAJOR).$(MINOR).$(MICRO)$(SHARED_LIB_EXT)
177:endif

4. ./configureを実行する

JavaHomeとImageMagickのパスを指定して./configureを実行します。

./configure –with-java-home=/System/Library/Frameworks/JavaVM.framework/Versions/Current --with-magick-home=/usr/local/opt/imagemagick

5. ビルドする

make all

6. (必要な人のみ)インストールする

make install

実行すると、以下のファイルがインストールされます。
make uninstall は存在しないので、アンインストールしたい場合は手動で削除してください。

  • /usr/local/lib/jmagick-6.4.0.jar
  • /usr/local/lib/libJMagick-6.4.0.so
  • /usr/local/lib/libJMagick.so(シンボリックリンク)

JMagickをJVMに認識させる

システムプロパティ「java.library.path」で指定されている場所に、libJMagick.soのパスを通します。
この時、拡張子をjnilibにしないと認識してくれませんでした。。。

java.library.pathの確認は以下のJavaコードを実行して確認できます。

System.out.println(System.getProperty("java.library.path"));

なお、通常はjava.library.pathに以下が指定されている模様です。

  • /Users/(ユーザ名)/Library/Java/Extensions
  • /Library/Java/Extensions
  • /Network/Library/Java/Extensions
  • /System/Library/Java/Extensions
  • /usr/lib/java
  • カレントディレクトリ

ユーザ権限で設定する場合は、以下が良いかと思います。

# make installしていない場合
ln -s (展開ディレクトリ)/lib/libJMagick.so /Users/(ユーザ名)/Library/Java/Extensions/libJMagick.jnilib

# make installした場合
ln -s /usr/local/lib/libJMagick.so /Users/(ユーザ名)/Library/Java/Extensions/libJMagick.jnilib
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2