*

Mac(OS X)におけるJava8(jdk8)等のインストール、アップデート、アンインストール方法

公開日: : 最終更新日:2015/05/01 Java


スポンサードリンク



Windowsとは異なりMac(OS X)ではJDKの管理(インストール、アンインストール)が難しいと感じます。
本エントリーではこの方法に関して記載させていただきます。

本エントリーの内容は以下の通りです。

  1. Java関係のインストール状況の確認方法
  2. Java8のアンインストール方法
  3. Java8のインストール方法
  4. 利用するJavaの切り替え方法

 

1 Java関係のインストール状況の確認方法

デフォルトで動作するjava、javacのバージョンの確認方法

ターミナルでjavaもしくはjavacコマンドを実行した時に動作するJDK、JREのバージョンの確認方法を説明させていただきます。

javaの確認方法

ターミナルでjava -versionを実行します。

“1.8.0_25″だと分かりました。

javacの確認方法

ターミナルでjavac -versionを実行します。

“1.8.0_25″だと分かりました。

インストールされている全てのjavaの確認方法

javac、javaにパラメータ-versionを渡すとターミナル環境で解決された各コマンドのバージョン情報が確認できますが、インストールされている全てのjavaの確認はできません。この確認を行うためには
ターミナルで/usr/libexec/java_home -Vを実行します。

/usr/libexec/java_homeはシンボリックリンクです。
macmini:bin user$ ls -l /usr/libexec/java_home
lrwxr-xr-x 1 root wheel 79 2 27 2014 /usr/libexec/java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home

javacとjavaコマンドの解決方法

Windowsだと環境変数のPATHで両コマンドは解決されますが、Macは違います。

javaコマンドがどこに存在するかをwhichコマンドを用いて調べてみます。
which java
をターミナルから実行すると/usr/bin/javaが結果として得られます。

では/usr/bin/javaってどんなファイルorディレクトリか確認するために
ls -l /usr/bin/java
をターミナルから実行すると
lrwxr-xr-x 1 root wheel 74 2 27 2014 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
との結果が得られます。/usr/bin/javaはシンボリックリンクなんですね、

では/System/Library/Frameworks/JavaVM.framework/Versions/は何なんでしょう?
ls -l /System/Library/Frameworks/JavaVM.framework/Versions/
をターミナルから実行すると以下の結果が得られました。

CurrentもAへリンクですね
Aの中身は言うと以下の通りとなっています。

Commandsの中身は以下の通りとなっています。

うーん、ここにはjavaコマンドがありますが、jdk1.8.0_25のjavaコマンドのサイズは99296です。
jdk1.8.0_20のjavaコマンドのサイズは99296ですのでjdk8のコマンドがコピーされているわけではないようです。

でもjavaを実行すると/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaが実行される・・・
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaはプロキシで、呼び出すべきjavaコマンドのパスを自動で判定しているとしか思えません・・・

どれが最新のjava環境かとの判断はjava_homeコマンドが行っているように思えます。
当然ですが環境変数のJAVA_HOMEが指定されていればその値が優先されます。

2 Java8のアンインストール方法

http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html
によると

Uninstalling the JDK

To uninstall the JDK, you must have Administrator privileges and execute the remove command either as root or by using the sudo(8) tool.

Navigate to /Library/Java/JavaVirtualMachines and remove the directory whose name matches the following format:*

/Library/Java/JavaVirtualMachines/jdk..<macro[_update]>.jdk

だそうです。よって以下の2コマンドを実行するだけです。
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk

jdk1.8.0_25のアンインストール

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdkを実行しました。
その後にjava -versionを実行すると以下の結果が得られました。

jdk1.8.0_25だったバージョンがjdk1.8.0_20に変わりました。
java_home -Vの結果も確認してみます。

予想通りこの結果にもjdk1.8.0_25が表示されなくなりました。

jdk1.8.0_20のアンインストール

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdkを実行しました。
その後java -versionを実行すると以下の結果が得られました。

「Could not determine current working directory.」って、実行するJavaが解決できないですね・・・

試しに
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin/java -version
とフルパスで実行してみるとちゃんと動作します。

さらに試しに
export JAVA_HOME=/usr/libexec/java_home -v 1.7でJAVA_HOMEを明示的に指定すると正しく動作します。

うーん、気のせいかと思いマシンを再起動したところJAVA_HOMに1.7を明示的に設定したときと同様に正しく動作します。
envで環境変数を確認してもJAVA_HOMEは設定されていません。
一回でも正しいJAVA_HOMEをシステムに知られてしまうとおぼえてしまうのでしょうか?

インストールされている最新のJavaを認識できるまでにタイムラグがあるのでしょうか!?
/usr/libexec/java_home -Vの実行結果は以下の通りです。

正しくjava8が消されたことを認識できています。

3 Java8のインストール方法

再度Java8をインストールしてみます。なおjava8が既にインストールされている環境にjava8のアップデートバージョンをインストールする場合でも同じ手順で作業すればOKです。

Java8のダウンロードとインストール

まずは。Mac(OS X)用のJDK8の最新版をダウンロードします。
Oracleのダウンロードサイトにアクセスし
以下の画面の「Accept License Agreement」にチェックを付けたあとに、「jdk-8u25-macosx-x64.dmg」をクリックします。
(u25は2014年11月1日現在の数値です。)
スクリーンショット 2014-11-01 14.57.29

ダウンロードが開始されますので、ダウンロードが終わるまで少し待ちます。
ダウンロード完了後にjdk-8u25-macosx-x64.dmgをダブルクリックするとインストールが開始され以下の画面が表示されますので、以下の画像の赤枠部分をダブルクリックします。
スクリーンショット 2014-11-01 15.05.22

次に以下の画面が表示されますので「続ける」ボタンをクリックします。
スクリーンショット 2014-11-01 15.07.53

すると画面は以下のように変化しますので「インストール」ボタンをクリックします。
スクリーンショット 2014-11-01 15.10.56

実際のインストール処理が開始されました。
スクリーンショット 2014-11-01 15.13.55

インストールが完了すると以下の画面が表示されますので、「閉じる」ボタンを押してインストールは完了です。
スクリーンショット 2014-11-01 15.16.04

Java8のインストール後の確認

java -versionの確認

java -versionからいってみます。

うんうん、ちゃんとJava8に変わってますね。

javac -versionの確認

javac -versionもついでにいってみます。

こちらもちゃんとJava8に変わってますね。

/usr/libexec/java_home -Vの確認

/usr/libexec/java_home -Vも実行してみます。

ちゃんとJava8のhomeが認識できています。

4 利用するJavaの切り替え方法

これについては先ほども記載いたしましたが環境変数のJAVA_HOMEを設定することで可能です。

利用するJavaを8から7に切り替える

export JAVA_HOME=/usr/libexec/java_home -v 1.7を実行することでjavaとjavacのバージョンが7に変わります。

実際にJAVA_HOMEに1.7のJAVA_HOMEを設定した後、javac -versionとjava -versionを実行した結果は以下の通りです。

利用するJavaを7から8に切り替える

再度java8に切り替えてみます。

うん、うん、ちゃんとJava8に切り替りました。


スポンサードリンク



関連記事

JUnit入門その8[Eclipse4.4のJUnitプラグインのテストケースのカバレッジをEclEmmaを利用して測定してみる]

今回は「EclEmma」を使って、テストのカバレッジの測定を行うエントリーとなります。 「djUn

記事を読む

Java8の新機能について

オラクルは2014年3月18日(日本時間3月19日早朝)に「Java 8」を正式に公開しました。

記事を読む

Java8の新機能に完全対応のEclipseメジャーリリースとなる Eclipse 4.4 Luna (ルナ) が遂にリリース

Eclipse メジャーリリースとなる Eclipse 4.4 Luna (ルナ) が遂にリリースさ

記事を読む

Eclipse4.4(Java)におけるビルド・パス関係の設定方法[JRAおよびクラス・フォルダー/ライブラリー]

Eclipse4.4(Java)におけるビルド関係のビルド・パス上の「JRAおよびクラス・フォルダー

記事を読む

JUnit入門その2[Eclipse4.4のJUnitプラグインのassertThatの使い方]

JUnit入門その1ではEclipseのJUnitプラグインの基本的な使い方を説明させていただきまし

記事を読む

Eclipse4.4,4.3の使い方[エディタのフォントサイズの変更方法]

今回は、Eclipse4.4と,4.3におけるエディタエリアのフォントサイズの変更方法を説明させてい

記事を読む

Spring5入門[STS(Spring Tool Suite)の環境作成と簡単なWebアプリの作成]

Struts1ももう過去の遺物になり、SAStrutsもEOLとなりもう半年以上が経過しました。

記事を読む

Java超入門 with Eclipse[4:クラスに関する基礎知識(修飾子とクラスとインスタンスと変数)]

前回は、Javaの基本であるクラスの基本的な知識をざっくりと説明させていただいたあと、 packa

記事を読む

Selenium入門その6[Selenium3でWebDriver(Java/Junit4)の環境を作成しEdge,Chrome,Firefoxで確認してみる]

Selenium3も3.0.1がリリースされましたし、今後は本格的にSelenium3が利用されてい

記事を読む

java8(JDK8)の新機能をEclipseとJUnitで[インターフェースのデフォルト実装の使い方]

本エントリーでは、まずSAM Typeの説明をさせていただきます。 その流れの中で「java8の新

記事を読む

Comment

  1. […] Mac(OS X)におけるJava8(jdk8)等のインストール、アップデート、アンインストール方法 […]

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Spring5入門[STS(Spring Tool Suite)で簡単なWebアプリの典型的なユニットテストの実現方法]

前回は「Spring入門」で、Spring MVCを利用した簡単なWe

Spring5入門[STS(Spring Tool Suite)の環境作成と簡単なWebアプリの作成]

Struts1ももう過去の遺物になり、SAStrutsもEOLとなりも

Selenium入門その6[Selenium3でWebDriver(Java/Junit4)の環境を作成しEdge,Chrome,Firefoxで確認してみる]

Selenium3も3.0.1がリリースされましたし、今後は本格的にS

Selenium利用時のトラブルシューティング方法[クリック編]

Seleniumは便利なテスト自動化ツールですし、今後は更なる利用者の

Java8のラムダ式とStream APIを利用してコーディング量の削減サンプル集

Java8になりラムダ式と「Stream API」が利用できるようにな

→もっと見る

Optimization WordPress Plugins & Solutions by W3 EDGE
PAGE TOP ↑