MacOS 10.9.2 でJAVA_HOMEを設定したお話

いつからかは不明ですが、気がついたらjavamavenの見ているjavaのバージョンが違ったので、
2つが揃うようにJAVA_HOMEを設定しました。今回の修正を行うにあたって参考にさせていただいたサイトは以下になります。

http://k-shogo.github.io/article/2013/09/02/mac-java/

(修正分を追記しました。下の方参照)

修正の成果

修正前は以下のようにversionが違いました。

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

    • > mvn -version

Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-18 00:22:22+0900)
Maven home: /usr/local/Cellar/maven/3.1.1/libexec
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: ja_JP, platform encoding: SJIS
OS name: "mac os x", version: "10.9.2", arch: "x86_64", family: "mac"

修正後はJAVA_HOMEを設定したことでversion揃って幸せ

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

    • > mvn -version

Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-18 00:22:22+0900)
Maven home: /usr/local/Cellar/maven/3.1.1/libexec
Java version: 1.7.0_45, vendor: Oracle Corporation
Java home: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.2", arch: "x86_64", family: "mac"

背景

javaで自作アプリに挑戦しいたら、いつの間にかmavenでのtestが文字化けしてた。
pomの設定はちゃんとしてるし、JAVA_HOME設定してないから参照しているJavaが違うんじゃね?って感で調べたらまさにそう!
オレ成長したかもってことで、勢いで久しぶりの日記です。

設定手順

比較的慣れ浸しんだような気がする場所に1.7のリンクを作成するのが気に入りました。

sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/ /System/Library/Frameworks/JavaVM.framework/Versions/1.7.0

最後に ~/.zshrc にJAVA_HOMEを設定

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.7.0

感想

JAVA_HOMEにしたくなるフェイクのようなリンクがはびこっていて中々大変、
割りとすぐに参考にしたサイトにたどり着けてよかったと思ったのでした。

追記 (13/03/10)

上記の設定だとmavenで以下のようにtools.jarが参照できなくて怒られてしまいました。


[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.080s
[INFO] Finished at: Mon Mar 10 22:30:35 JST 2014
[INFO] Final Memory: 7M/156M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project score: Fatal error compiling: tools.jar not found: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/../lib/tools.jar -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

なので色々調べた結果、Macでは以下のJDKを参照してあげれば良いみたいです。lib/tools.jarもちゃんとありました。
しばらくはこれで様子見です。

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/1.7.0

しれっとJAVA_HOMEの設定も修正します。もしかして修正前のやつもパスをミスってダメだったのかもしれないと感じているのは、みんなには言えない秘密

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.7.0/HOME

以上

Mac OS X 10.9.2 でJAVAを設定するお話でした。