Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
472
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

Organization

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

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)はユーザ別にインストールした場合?

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は出来る子だった。

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)
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
472
Help us understand the problem. What are the problem?