macOS Sierra 10.12でJava SE 6が動く?

カテゴリー Java, Mac, 技術的なメモ

macOS Sierraがリリースされました。新機能が紹介される一方、廃止される機能もあります。
そのひとつがJava SE 6(以下、Java 6)です。

Javaは目立つ機能ではないものの、アプリケーションを動作させるための基盤として用いられており、なかでもJava 6は長期にわたってサポートされたバージョンで、いろいろなアプリケーションから利用されている重要な機能です。
有名どころでは開発者はEclipseApache 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

Sierra導入直後のJavaが格納されているディレクトリの状態

サブディレクトリとしてExtensionsとJavaVirtualMachinesが見つかりますが、それ以外のファイルは見つかりません。

次に、javaコマンドを打ってみます。

java

Sierra導入直後に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」。

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 for OS X 2015-001をインストール1

インストールしたディスクイメージを開きます。

Java for OS X 2015-001をインストール2

インストーラを起動。

Java for OS X 2015-001のインストーラ1

無事、インストーラが起動しました!!

しかし、このあとインストール先の環境チェックなどでインストールできない可能性もあります。ぬか喜びで終わらないよう「続ける」を押して次へと進めます。Java for OS X 2015-001のインストーラ2

使用許諾契約の表示です。
「続ける」を押して次へ。
Java for OS X 2015-001のインストーラ3

迷わず「同意する」を押して次へ。Java for OS X 2015-001のインストーラ4

インストール先の確認が表示されますが、特に設定にこだわった環境でもないので「インストール」を押して次へ。Java for OS X 2015-001のインストーラ5

インストールのための認証ダイアログが表示されるので、権限を持ったユーザ名とパスワードを入力し「ソフトウェアをインストール」を押して次へ。

今度こそ、インストールがはじまるか!?Java for OS X 2015-001のインストーラ6

インストールがはじまった!!!!

Java for OS X 2015-001のインストーラ7

完了。

Java for OS X 2015-001のインストーラ8

「閉じる」を押してインストーラを終了します。

インストーラによるJava 6環境のインストール自体はできたっぽいですが、動作するかは別問題。
確認のため、ターミナルを開きls -lRコマンドで先ほどの /Library/Javaディレクトリの状態をチェックします。

先ほどは空だったので、なんらかのファイルが生成されていればインストールされたと考えても良さそうです。

ls -lR /Library/Java

Java for OS X 2015-001のインストール後確認1

ファイルがいっぱいある!!

Java for OS X 2015-001のインストール後確認2

続いて、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を実行することができました。

注意:
ここで紹介した方法は、公式にサポートされたOSではなく、公式に公開されている方法でもありません。
また動作確認に用いたアプリケーションがGUIを用いないものであったため、偶然動作しているだけかもしれません。
最悪の場合、システムやデータに復旧不可能なダメージを与える可能性があります。
実際の導入にあたっては細心の注意を払い、ご自身の責任においてお試し下さい。

デジタルガジェット大好き!!
小さい機械を片手に、JavaとFlex、PHPなど、いろいろなプログラミング言語・環境を行ったり来たりしながらプログラムを書いています。
最近お気に入りな環境は、Visual StudioとFileMaker。

macOS Sierra 10.12でJava SE 6が動く?” への3件のフィードバック

    1. コメントありがとうございます。
      CS6問題で移行を迷っている方がいらっしゃるようなので、いただいた稼働実績が非常に参考になります!!

  1. OlivineEditor という階層化エディターを使ってきたので助かりました。
    どうも有り難うございました。

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください