2012年頃に買ったMacBook Air。
Android Studioをインストールしようと思ったら、Javaがインストールされていない。
そこでJDKをインストールしたわけだが意外に面倒、というか複雑だったのでメモ。
OpenJDKについては調べてもいない。
現状の確認
Javaのバージョン
/Applications/Utilities/Java Preferences.app を探したけど、Mac OSX10.8以降では存在しないらしい。
OSをアップデートした人は残ってるかも。
なので、コンソールからjava -version
で確認。
「インストールしますか?」と聞かれたら、まだインストールしない。
Android StudioなどJava製のアプリを起動してもAppStoreが「インストールしますか?」と聞いてくる。
そこでインストールしたとしても、何回でも聞いてくるのでインストールしない。
何かしらのJavaがインストールされている場合/usr/libexec/java_home -V
でも確認できるはず。
例えばこんな感じ。
このコマンドなかなか出来るヤツ、という印象を受けた。
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
1.7.0_51, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
パスについて
MacのJavaは下記の場所にインストールされるらしい。
- /System/Library/Java/JavaVirtualMachines/
- /Library/Java/JavaVirtualMachines/
- /Users/$USER/Library/Java/JavaVirtualMachines
(1)にはAppleのJDKがインストールされる。
(2)にはOracleのJDKがインストールされる。
(3)はユーザ別にインストールした場合?
MacとJavaの関係
OracleでMac用のJDK6を探したけど見つからない。いったいどうなってんだ。
Javaバージョン6以前については、Apple社が独自のバージョンのJavaを提供しています。
http://www.java.com/ja/download/faq/java_mac.xml#java6
どうやら6まではAppleが提供してたらしい。
7からはAppleは提供していないので、Oracleからダウンロードできる。逆に。
JDK 7がインストールされているシステムでApple Java 6を復元する場合は、まずJDK 7をアンインストールする必要があります。JDK 7のアンインストール手順を参照してください。
http://www.java.com/ja/download/faq/java_mac.xml#restore
復元てなんですかね。
JDK7からインストールしてしまった場合、アンインストールしたほうがいいのかもしれない。
してないけど。
アンインストール方法は↓
http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html#uninstall
JDK6のインストール
前置きが長すぎる。JDK6からインストール。
Apple提供のものを下記のページからダウンロードしてインストール。
最新のものはAppleのサポートページから"java"で検索したほうがいいと思う。
Java for OS X 2013-005
http://support.apple.com/kb/DL1572?viewlocale=ja_JP
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk にインストールされているはず。
JDK7以降のインストール
こちらはOracleからダウンロードする。
"Accept License Agreement"をチェックしてダウンロード。
こちらも特に何事も無くインストール完了。
/Library/Java/JavaVirtualMachines/ 以下にインストールされているはず。
JAVA_HOME環境変数とjava_homeコマンド
色々調べてみると内部は複雑な模様。
シンボリックリンク切ったり張ったりしてる人もいて嫌になる。
We could keep our current PATH and it will be Apple java bootstrap system, living into /usr/bin/java who make use of JAVA_HOME and launch the proper JVM. Simple but efficient .
http://blog.hgomez.net/blog/2012/07/20/understanding-java-from-command-line-on-osx/
MacのjavaはJAVA_HOME環境変数を設定するだけで切り替えられるっぽい。
java_home -v
でバージョンごとのパスを返してくれるので、それと合わせて使えばよさそう。
やはりjava_home
は出来る子だった。
$ echo $JAVA_HOME
$ export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
$ java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
$
$ export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
$ echo $JAVA_HOME
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)