Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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)
ryo0301
lifull
日本最大級の不動産・住宅情報サイト「LIFULL HOME'S」を始め、人々の生活に寄り添う様々な情報サービス事業を展開しています。
https://lifull.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away