2012年3月18日日曜日

OSX(Lion 10.7)のJAVA_HOME



OSXのJAVA_HOMEってどこなの?
というわけで調べてみた。

内容のわりに長いので、まずは結論から。
java_homeコマンドを利用しました。


vi ~/.bashrc
export JAVA_HOME=`/usr/libexec/java_home`


自力で調べると、
locate java
いろいろ出すぎ・・・

locate javac
少し減った。

たぶんこれ。


ls -la /usr/bin/javac
/usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
ls -la /usr/bin/java
/usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

ls -la /System/Library/Frameworks/JavaVM.framework
Classes -> Versions/CurrentJDK/Classes
Commands -> Versions/CurrentJDK/Commands
Frameworks -> Versions/Current/Frameworks
Headers -> Versions/Current/Headers
Home -> Versions/CurrentJDK/Home
JavaVM -> Versions/Current/JavaVM
Libraries -> Versions/CurrentJDK/Libraries
Resources -> Versions/Current/Resources
Versions


「HOMEっぽい」ものがあるではないですか。


ls -la /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
bin
bundle -> ../
lib
man


このあたりなのかなと思いますが、シンボリックリンク多くて不安なのでもう少し調べてみました。
AppleのDeveloperサイトで検索してみると、

関係ありそうなのがこちら。
https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/java_home.1.html
https://developer.apple.com/library/mac/#qa/qa1170/_index.html

developerサイトでは、java_homeコマンドがオススメのようなのでこれを使ってみます。
あと、旧バージョンとの互換性のため、/Library/Java/Homeも使えるようです。
ちなみに/Library/java/Homeのリンク先は、上記の「HOMEっぽい」パスでした。
/Library/Java/Home -> /System/Library/Frameworks/JavaVM.framework/Home

次のいずれかがよいかと思います。


export JAVA_HOME=`/usr/libexec/java_home`
または、
export JAVA_HOME=/Library/Java/Home


とにかくバージョン毎のシンボリックリンクが多いので、
パスの管理してくれてるコマンドはありがたいですね。




0 件のコメント:

コメントを投稿