7/15 (日本時間 7/16 早朝)、Java SE 8 Update 11 (8u11) がリリースされました。
インストール済の Java 8 のアップデートを行います。
(*) Java 8 のインストールについては「Java SE 8 (JDK 1.8.x) のインストール (Mac | OS X 10.9)」を参照してください。
JDK の「DOWNLOAD」ボタンを選択し、「Accept License Agreement」をチェックします。
Mac 用は「Mac OS X x64」です。
本日時点の最新版は jdk-8u11-macosx-x64.dmg (217,918,294 byte) でした。
「インストールの種類」画面では、指定する情報はありません。
「インストール」ボタンを選択すると Java SE 8u11 のインストールが始まります。
「次のステップ」リンクから Java SE 8 のドキュメントを参照可能です。
java コマンド
javac コマンド
いずれも Java SE 8u11 のバージョン番号である「1.8.0_11」と表示されています。
/System/Library/Frameworks/JavaVM.framework/Versions にインストールされた各バージョンに対し、Current リンクを経由してシンボリックリンクが張られています。
ただ、こちらは Mac OS 固有のファイルが格納されているようです。
見慣れたファイル群は /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home 配下にありました。
3.3. Java 起動許可設定
インストール直後の Java は、CommandLine からの実行のみ許可する設定となっています。
このままでは Eclipse.app 等、Java を利用するアプリケーションを Finder や Dock でダブルクリックしても起動してくれません。
この設定は Info.plist に定義されています。
/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Info.plist
「JVMCapabilities」に「BundledApp」を追加することで、Eclipse も Eclipse.app のクリックから起動可能となります。
(*) 変更内容は OS X を再起動することで有効になります。
今回は追加していませんが、「WebStart」を追加すると Java Web Start が、「Applet」を追加すると Java Applet が起動可能となるようです。
インストール済の Java 8 のアップデートを行います。
(*) Java 8 のインストールについては「Java SE 8 (JDK 1.8.x) のインストール (Mac | OS X 10.9)」を参照してください。
1. Java SE Development Kit (JDK) のダウンロード
Oracle (旧 Sun) のダウンロードページ Java SE Downloads から最新の JDK である Java SE 8u11 をダウンロードします。JDK の「DOWNLOAD」ボタンを選択し、「Accept License Agreement」をチェックします。
Mac 用は「Mac OS X x64」です。
本日時点の最新版は jdk-8u11-macosx-x64.dmg (217,918,294 byte) でした。
2. Java SE Development Kit (JDK) のインストール
2.1. インストーラの実行
jdk-8u11-macosx-x64.dmg ファイルをマウントし、「JDK 8 Update 11.pkg」を実行するとインストーラが起動します。2.2. インストールの種類
「はじめに」画面で「続ける」ボタンを選択すると、「インストールの種類」画面に遷移します。「インストールの種類」画面では、指定する情報はありません。
「インストール」ボタンを選択すると Java SE 8u11 のインストールが始まります。
2.3. インストール完了
インストールが完了すると「概要」画面に遷移します。「次のステップ」リンクから Java SE 8 のドキュメントを参照可能です。
3. 設定と動作確認
3.1. ターミナル
ターミナルから java コマンドと javac コマンドが正常に起動することを確認します。java コマンド
$ java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
javac コマンド
$ javac -version
javac 1.8.0_11
javac 1.8.0_11
いずれも Java SE 8u11 のバージョン番号である「1.8.0_11」と表示されています。
3.2. Java インストールパス
Java SE 8u11 がどこにインストールされたのかを確認してみました。$ whereis java
/usr/bin/java
$ cd /usr/bin
$ ls -l java*
lrwxr-xr-x 1 root wheel 74 10 27 2013 java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
lrwxr-xr-x 1 root wheel 75 10 27 2013 javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
lrwxr-xr-x 1 root wheel 77 10 27 2013 javadoc -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javadoc
lrwxr-xr-x 1 root wheel 75 10 27 2013 javah -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javah
lrwxr-xr-x 1 root wheel 75 10 27 2013 javap -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javap
lrwxr-xr-x 1 root wheel 76 10 27 2013 javaws -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaws
$ cd /System/Library/Frameworks/JavaVM.framework/Versions
$ ls -l Current
lrwxr-xr-x 1 root wheel 1 10 27 2013 Current -> A
/usr/bin/java
$ cd /usr/bin
$ ls -l java*
lrwxr-xr-x 1 root wheel 74 10 27 2013 java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
lrwxr-xr-x 1 root wheel 75 10 27 2013 javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
lrwxr-xr-x 1 root wheel 77 10 27 2013 javadoc -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javadoc
lrwxr-xr-x 1 root wheel 75 10 27 2013 javah -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javah
lrwxr-xr-x 1 root wheel 75 10 27 2013 javap -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javap
lrwxr-xr-x 1 root wheel 76 10 27 2013 javaws -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaws
$ cd /System/Library/Frameworks/JavaVM.framework/Versions
$ ls -l Current
lrwxr-xr-x 1 root wheel 1 10 27 2013 Current -> A
/System/Library/Frameworks/JavaVM.framework/Versions にインストールされた各バージョンに対し、Current リンクを経由してシンボリックリンクが張られています。
ただ、こちらは Mac OS 固有のファイルが格納されているようです。
見慣れたファイル群は /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home 配下にありました。
$ ls /Library/Java/JavaVirtualMachines
jdk1.7.0_45.jdk jdk1.8.0_05.jdk jdk1.8.0_11.jdk
$ ls /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home
COPYRIGHT include
LICENSE javafx-src.zip
README.html jre
THIRDPARTYLICENSEREADME-JAVAFX.txt lib
THIRDPARTYLICENSEREADME.txt man
bin release
db src.zip
jdk1.7.0_45.jdk jdk1.8.0_05.jdk jdk1.8.0_11.jdk
$ ls /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home
COPYRIGHT include
LICENSE javafx-src.zip
README.html jre
THIRDPARTYLICENSEREADME-JAVAFX.txt lib
THIRDPARTYLICENSEREADME.txt man
bin release
db src.zip
3.3. Java 起動許可設定
インストール直後の Java は、CommandLine からの実行のみ許可する設定となっています。このままでは Eclipse.app 等、Java を利用するアプリケーションを Finder や Dock でダブルクリックしても起動してくれません。
この設定は Info.plist に定義されています。
/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
~ 中略 ~
<dict>
<key>JVMCapabilities</key>
<array>
<string>CommandLine</string>
</array>
~ 中略 ~
</dict>
</dict>
</plist>
「JVMCapabilities」に「BundledApp」を追加することで、Eclipse も Eclipse.app のクリックから起動可能となります。
<key>JVMCapabilities</key>(*) 赤字を追加。
<array>
<string>CommandLine</string>
<string>BundledApp</string>
</array>
(*) 変更内容は OS X を再起動することで有効になります。
今回は追加していませんが、「WebStart」を追加すると Java Web Start が、「Applet」を追加すると Java Applet が起動可能となるようです。