macOS Sierraがリリースされました。新機能が紹介される一方、廃止される機能もあります。
そのひとつがJava SE 6(以下、Java 6)です。
Javaは目立つ機能ではないものの、アプリケーションを動作させるための基盤として用いられており、なかでもJava 6は長期にわたってサポートされたバージョンで、いろいろなアプリケーションから利用されている重要な機能です。
有名どころでは開発者はEclipseやApache Tomcat、デザイナーはAdobe CS6などで使われているようです。(もちろん、最新バージョンではJava 6を使わずとも実行できるようになっているのがほとんどなのですが、さまざまな事情により古いバージョンを使わなくてはいけない状況というのもよくあること。その状態で「使えなくなった」となれば一大事です。)
遡ること1年前、Sierraのひとつ前のバージョンEl Capitanがリリースされたとき、そのリリースノートで以下のようEl CapitanがJava 6をサポートする最後のバージョンである旨が説明されており、Sierraからはサポート外となることが明確で準備期間は用意されていたはずでした。
Java
Note
OS X El Capitan is the last major release of OS X that will support the previously deprecated Java 6 runtime and tools provided by Apple. Applications or features that depend upon Java 6 may not function properly or will not launch when Java 6 is removed. Developers should move to a newer version of Java as provided by Oracle. For more info on Java from Oracle: http://www.oracle.com/technetwork/java/javase/overview/
“さまざまな事情”によりベンダーの思惑通りに移行が進むはずもなく、かく言う私も古いJavaでもシステムの保守を行えるよう備える必要があります。
そのため新しいmacOSでもJava 6が使い続けられるか非常に気になるところ、どんなものかと調べてみました。
まず、macOS Sierraをクリーンインストールした直後の状態確認から。
ターミナルを開き、ls -lRコマンドでJavaがインストールされているはずのディレクトリを調べます。
ls -lR /Library/Java
サブディレクトリとしてExtensionsとJavaVirtualMachinesが見つかりますが、それ以外のファイルは見つかりません。
次に、javaコマンドを打ってみます。
java
ターミナルには「No Java runtime present, requesting install.」と表示され、インストールをうながすダイアログが表示されます。
どうやら、Sierraインストール直後の状態では、どのバージョンのJavaもインストールされていないようです。
本来であれば、ダイアログの指示に従うか、自分でOracleのwebサイトからJava環境をダウンロードしインストールするのですが、OracleのJavaはJava 7以降しか提供されておらず、「Java 6を使いたい」という今回の要件には合いません。
なので、以前Appleにより公開されたJava 6環境が使えないか試すことにします。
試すのは、2015年に公開された「Java for OS X 2015-001」。
OS X 10.7 Lion、OS X 10.8 Mountain Lion、OS X 10.9 Mavericks、OS X 10.10 Yosemite、OS X 10.11 El Capitanという複数バージョンのOS XのJava 6環境をサポートするためのリリースです。
Appleのサイトからインストーラをダウンロードします。
インストールしたディスクイメージを開きます。
インストーラを起動。
無事、インストーラが起動しました!!
しかし、このあとインストール先の環境チェックなどでインストールできない可能性もあります。ぬか喜びで終わらないよう「続ける」を押して次へと進めます。
使用許諾契約の表示です。
「続ける」を押して次へ。
迷わず「同意する」を押して次へ。
インストール先の確認が表示されますが、特に設定にこだわった環境でもないので「インストール」を押して次へ。
インストールのための認証ダイアログが表示されるので、権限を持ったユーザ名とパスワードを入力し「ソフトウェアをインストール」を押して次へ。
今度こそ、インストールがはじまるか!?
インストールがはじまった!!!!
完了。
「閉じる」を押してインストーラを終了します。
インストーラによるJava 6環境のインストール自体はできたっぽいですが、動作するかは別問題。
確認のため、ターミナルを開きls -lRコマンドで先ほどの /Library/Javaディレクトリの状態をチェックします。
先ほどは空だったので、なんらかのファイルが生成されていればインストールされたと考えても良さそうです。
ls -lR /Library/Java
ファイルがいっぱいある!!
続いて、javaコマンドでバージョン表記を試してみます。
java -version java version "1.6.0_65"Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468-11M4833)Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)
バージョン表記が出た!!
大丈夫そうです。
その後、古いApache Tomcat(Java 6で動く最終バージョンTomcat 7.0.72)で動作確認を行いましたが、問題なく動いているように見えます。
2016/09/21時点では、macOS SierraにおいてJava 6はサポート外だけれど動くことは動く… っぽいようです。
メモ:
この記事で検証環境として用いたのは、macOS Sierra(10.12)をクリーンインストールした環境ですが、ほかにOS X El Capitan(10.11)からアップグレードした環境でも試しています。
El Capitanからアップグレードした環境では、El Capitanで導入していたJava環境がすべて引き継がれるように見受けられます。複数バージョンのJavaが導入されていた場合、環境変数JAVA_HOMEなどを適切に設定することで任意のバージョンのJavaを実行することができました。
私もこの方法で正常にCS6が動いています。いまのところ
OlivineEditor という階層化エディターを使ってきたので助かりました。
どうも有り難うございました。