MacにJava(JDK)をインストール

  • 426
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

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でも確認できるはず。
例えばこんな感じ。
このコマンドなかなか出来るヤツ、という印象を受けた。

java_home
$ /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は下記の場所にインストールされるらしい。

  1. /System/Library/Java/JavaVirtualMachines/
  2. /Library/Java/JavaVirtualMachines/
  3. /Users/$USER/Library/Java/JavaVirtualMachines

(1)にはAppleのJDKがインストールされる。
(2)にはOracleのJDKがインストールされる。
(3)はユーザ別にインストールした場合?

http://blog.satooshi.jp/blog/2013/01/29/you-cannot-uninstall-apple-jdk6/

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"をチェックしてダウンロード。

http://www.oracle.com/technetwork/java/javase/downloads/index.html

こちらも特に何事も無くインストール完了。
/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は出来る子だった。

java
$ 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)