*

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に切り替りました。


スポンサードリンク



関連記事

Eclipse4.4(Java)におけるビルド・パス関係の設定方法[ビルド・クラスパスの順序およびエクスポート設定]

Eclipse4.4(Java)におけるビルド関係のビルド・パス上の「ビルド・クラスパスの順序および

記事を読む

Selenium入門その4[Selenium WebDriver(Java/Junit4)の基本コマンド]

前回はEclipse環境でSelenium WebDriverでJava/Junit4を利用したテス

記事を読む

JUnit入門その9[@RunWithアノテーションを利用したテストの作成]

今回は@RunWithアノテーションを利用したテストの作成方法を説明させていただきます。 JU

記事を読む

JUnit入門その1[Eclipse4.4のJUnitプラグインの基本的な使い方]

利用する環境の作成につきましては、「Eclipseの使い方(Windows環境のEclipse4.3

記事を読む

JUnit入門その7[Eclipse4.4のJUnitプラグインとDBUnitの併用(更新系のテストの実装)]

JUnit入門その6 ではDBUnitを便利に利用するためのユーティリティ(と言っても基底クラスで

記事を読む

Eclipse4.4(Java)におけるビルド・パス関係の設定方法[ビルド・パス上に必要なプロジェクト/プロジェクト参照の追加]

Eclipse4.4(Java)におけるビルド関係のビルド・パス上の「ビルド・パス上に必要なプロジェ

記事を読む

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

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

記事を読む

Eclipseのインストールと日本語化とJDK8(Java8)対応[Eclipse4.4とEclipse4.3]

インストールするEclipseのバージョンですが、とりあえず4.3をターゲットとしておき、 4.4

記事を読む

Eclipseの使い方(Eclipse4.4のブックマーク機能とタスク機能)

今回は、Eclipseのブックマーク機能とタスク機能の説明をさせていただきます。 両機能とも効率的

記事を読む

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

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

記事を読む

Comment

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

Message

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

Eclipse Oxygen Update 1 (4.7.1)を利用してJUnit5の公式ガイドの内容を実践してみる。

いよいよJUnit5が本格的に利用できる環境が整ってきました。

Spring5入門[簡単なWebアプリのユニットテストをJUnit5とJMockitで作成]

Spring5入門ではJUnit4とmockitを利用したSpring

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

→もっと見る

Optimization WordPress Plugins & Solutions by W3 EDGE
PAGE TOP ↑