はじめに
※自分用のメモも含みます。
誤解のないように書いておくと、このエントリは、Java Applet を推奨する記事ではありません。
既にアナウンスされている通り、Java 9 では非推奨となり、Java Plugin は、将来削除される予定です。
- 参考資料: JDK 9およびJavaプラグイン
先日(2017/10/28)参加させていただいた「JavaOne 2017 報告会 in 大阪」でも、次のようなお話がありました:
- リリースモデルが変更になる。
- 2018年3月から6か月ごと。その時までに間に合った機能が入る。
- 詳しくは、「Oracle Java SEサポート・ロードマップ」と思われる。
- Java 8 からの移行は、バージョン18.9(2018年9月リリース)を目指すのがよいのでは?
- Applet について
- Java 8 が確実
- バージョン 18.3 から Deployment Technologies (Applet, Java Web Start) がバンドルされない
そのため、Java 9 における Applet の動作検証に、果たして意味があるのだろうか?と自問しつつ、
ほとんど供養のような気持ちで以下、記載しています。
Java 9 + IE: Applet の動作検証 - 動きます、但し、、、
結論から書いてしまうと、次の条件で動作しました。
-
実際に検証した環境
- OS: Windows 10 Home Edition (バージョン1703, ビルド15063.674) (64bit, x64ベース)
- IE: 11.674.15063.0 (更新バージョン 11.0.47(KB4040685))
- Java: 9.0.1 (ビルド11) 64bit (ダウンロード元:http://www.oracle.com/technetwork/java/javase/downloads/jre9-downloads-3848532.html)
- 確認に利用したサイト: https://www.java.com/ja/download/installed8.jsp
-
注意点
- Java 9 は 64bit版のみが公開されている。
- IEは、デフォルトでは、32bitモードで動作する。このため、Appletで64bit版Javaを利用するには、Java 8 までと同様、拡張保護モード(Enhanced Protected Mode; EPM)を有効にする必要がある。
- IE10の場合:インターネットオプションの詳細設定で「拡張保護モードを有効にする」(「マシン」再起動が必要)
- IE11の場合:インターネットオプションの詳細設定で「拡張保護モードで 64 ビット プロセッサを有効にする」(「マシン」再起動が必要)
- 参考資料: IE10 & IE11 : 拡張保護モードの実態
- IEの拡張保護モードとの相性に関する不具合修正が、Java 7u55 で実施されている。このため、Appletで64bit版Javaを利用するには、7u55以上が必要のようだ。
- 参考資料: Java7リリースのハイライト
- Java7u51にて、セキュリティ強化が行われ、デフォルトのセキュリティ設定で利用するには、公開するアプレットに、次の調整が必要だ:
- すべてのRIA(AppletおよびWeb Startアプリケーション)に署名が必要。
- マニフェスト内に"Permissions"属性を設定する必要がある。
- 参考資料: 【Java 7 u51 関連情報(1)】Java 7 Update51におけるRIAの新しいセキュリティ要件について
- IEの拡張保護モードは、他のプラグインとの相性が良くないことがある。もしそちらのプラグインを利用する場合には、拡張保護モードを無効にする必要があり、その時は、64bit版Javaは利用できないことになる。
- Java 9 から、モジュールシステムが導入されたので、利用するパッケージによっては、起動オプションの調整が必要と思われる(⇒別途調査しよう)
#動作検証手順
-
準備として、念のため、インストール済みだった、JRE7, JDK7, JRE8, JDK8 をすべて削除したのち、マシン再起動
-
Java 9 をダウンロードしてからインストール
※この時点で、IEのアドオン一覧を確認すると、「Java(tm) Plug-In 2 SSV Helper」が新規アドオンとしてインストールされていることが確認できる -
IE11のインターネットオプションの詳細設定で「拡張保護モードで 64 ビット プロセッサを有効にする」にチェックを付ける
-
マシン再起動
-
IEのアドオン一覧を確認すると「Java(tm) Plug-In 2 SSV Helper」が「互換性なし」「利用不可」と表示されるが、あきらめずに先に進む
-
IEで Javaのバージョン確認のサイト https://www.java.com/ja/download/installed8.jsp を表示する
-
[Javaのバージョンの確認]ボタンを押下する
-
「Java Plug-inが非推奨です」という警告を表示する(「このメッセージを今後表示しない」にデフォルトでチェックが付いているので最初しか表示しないが、デフォルトはオフの方がよいような気が。。。)が、アプレットは起動する
[署名確認]
[Java Plug-in非推奨の警告]
※Javaコンソールを表示している場合は、そこにも「警告:Java Plug-in が非推奨であり、今後のJavaリリースでの削除が考えられます。」と表示される。
[Applet実行結果]
#おわりに
AppletがJava 9 で非推奨になったという情報はありましたが、GA版になってからの状況があまり見えず不安であったため、自分を落ち着かせるために検証してみたというのが本音です f^^;
次は、デフォルトで読み込まれないモジュールも含めて、検証したいと考えています。
もちろん、Appletの代替の模索も並行して。