Macでjavaをアップデートする Mac環境のJavaの仕様を理解する

2016年03月22日(編集2016年03月22日)
このエントリーをはてなブックマークに追加

Mac環境でjavaのアップデートをおこないます。
環境はMac, javaはOracle JDKを利用します。

環境

  • OS X Yosemite
  • Oracle jdk version 1.8.0_74(前のバージョン:1.7.0_55)

内容

初心者向け

Javaの設定確認

Macのjavaのアップデートをするには、現在利用しているjavaの情報を把握する必要があります。
まずターミナルを立ち上げます。そして、以下のコマンドを入力します。

terminal
java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)
        

javaのバージョンは1.7.0_55です。

続けてjavaコマンドのフルパスを確認します。
whichコマンドを使います。
whichコマンドは、コマンドのフルパスを表示するコマンドです。

terminal
which java
/usr/bin/java
        

上記で表示されていた/usr/bin/javaはシンボリックリンクです。
シンボリックリンクとは、ファイルや、ディレクトリを参照するファイルの事です。Windowsのショートカットのようなものです。

実際のリンクを確認してみましょう。

terminal
ls -l /usr/bin/java
lrwxr-xr-x  1 root  wheel  74 11  8  2014 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
        

実体は/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaです。

Versions以下のフォルダで、macにインストールされているjavaの一覧を確認できます。

terminal
ls -l /System/Library/Frameworks/JavaVM.framework/Versions
total 64
lrwxr-xr-x  1 root  wheel   10 11  8  2014 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 11  8  2014 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 11  8  2014 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 11  8  2014 1.5.0 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 11  8  2014 1.6 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 11  8  2014 1.6.0 -> CurrentJDK
drwxr-xr-x  8 root  wheel  272  4 30  2015 A
lrwxr-xr-x  1 root  wheel    1 11  8  2014 Current -> A
lrwxr-xr-x  1 root  wheel   59 11  8  2014 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
        

CurrentJDKは1.6.0.jdkとなっています。しかし、先程のJavaのバージョン確認では、1.7.0_55が表示されていました。
これはどういうことなのでしょうか。

Macのjavaの仕様

Mac(OSX)では3種類のjavaを利用することが可能です。その3つは、openjdk, oracle, appleです。
しかし、既にappleの提供するjavaは廃止となり、Oracleのjavaを利用することが推奨されています。このような複雑な(?)過去の経緯から、Mac(OSX)には、java_homeコマンドが用意されています。

java_homeコマンド

Mac(OSX)では、java_homeコマンドで現在利用しているjavaを知ることができます。
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_homeでコマンドが実行できます。

terminal
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home
        

/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Homeが表示されました。

java_homeコマンドは、引数にバーションを指定することで、他のバージョンのインストール状態も知ることができます。

terminal
// check version 1.4
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home -v "1.4"
Unable to find any JVMs matching version "1.4".

// check version 1.5
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home -v "1.5"
Unable to find any JVMs matching version "1.5".

// check version 1.6
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home -v "1.6"
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

// check version 1.7
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home -v "1.7"
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home

// check version 1.8
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home -v "1.8"
Unable to find any JVMs matching version "1.8".
        

上記では、1.6と1.7がインストールされていることが確認できます。

javaのアップデート

javaのアップデートはjavaのインストールと同じです。

ダウンロードはoracleの公式サイトから行います。

oracle公式サイトのjdkダウンロード画面。windows, mac, Linuxが選択できます。

dmgファイルをクリックしてダウンロードします。
インストール画面が表示されます。

上記はjdk8u74のjava

pkgアイコンをクリックし、画面の説明に従ってインストール作業を進めていきます。
インストール作業が終了したらterminalからjavaがintsallされたことを確認します。

terminal
java -version
java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)
        

正常にjavaがinstallされています。
もう一度java_homeコマンドでも確認してみましょう。

terminal
// check version 1.8
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home -v "1.8"
/Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home
        

Unable to find any JVMs matching version "1.8".の表示が消えました。
Macにinstallされているjavaの一覧も表示してみます。

terminal
ls -l /Library/Java/JavaVirtualMachines/
total 0
drwxr-xr-x  3 root  wheel  102  4 21  2014 jdk1.7.0_55.jdk
drwxr-xr-x  3 root  wheel  102  3 19 18:05 jdk1.8.0_74.jdk
        

新しく導入したjdk1.8.0_74が追加されているのが確認できます。

まとめ

Macのjavaのアップデート方法は、windowsやLinuxとは異ります。
今の時代は、全ての環境で開発をする必要がある人も多いと思います。
面倒だとは思いますが、それぞれのOSの特徴も少しづつ把握していきましょう。

関連記事

タグ検索で調べてみよう

Java Mac OS X