はじめに
本投稿の内容は、ブラウザ上でJavaアプレットを動かすものではありません。
現状として私は何度か繰り返し使う可能性が高い方法です。なのに忘れそうです。
ここにメモしておきます。
環境および前提
Windows10.
この方法ではJavaアプレット本体のソースが不可欠です。
今回は、動かしたいJavaアプレットが載っているページの管理人様が、github上でアプレットの本体であるソースを公開していました。
(あまり公開されているものとは思いません。が、今回のケースに関しては公開することで、Javaアプレットの廃止に対応できないことを補う意図があったそうです。非公開だけどどうしても使いたいなら、管理人様にお願いすることになるのかもしれません。)
また、JavaがPCにインストールされていることが必要です。
今回の環境は下記。
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) Client VM (build 25.131-b11, mixed mode)
背景
JavaアプレットはJava11以降は廃止の技術です。
それでも、例えばここcut-the-knot.org様のコンテンツのように、
Javaアプレットを用いたページがインターネット上にはまだ存在していて、それを動かしてみたいことがあります。
しかし、主要なブラウザでは既にサポートが廃止されています。
つまり最新バージョンのブラウザ上では実行できないはずです。
私が使っているブラウザ5つのどれもが実行できませんでした。
問題
ブラウザ外でどうすればJavaアプレットを動かせるか。
個人的に使った方法を共有します。
Java関連の知識が無いので正攻法ではないかもしれません。
解決策
Java SEをインストールすると附属してくるappletviewer.exeというツールを使うと、appletを動かすことができます。
定義
- Javaアプレットを使用しているページを仮に「applet.html」とします
- Javaアプレットの本体であるクラスが格納されたフォルダを「classes」とします
- applet.htmlとclassesを格納したフォルダを「c:\tmp\demo」とします
手順アウトライン
- applet.htmlを入手します
- classesを入手します
- applet.htmlとclassesを、
c:\tmp\demo
に配置します - applet.htmlの内容を修正します
- appletviewer.exeを使ってアプレットを動かします
手順詳細
アウトラインの1~3については、今回はファイルを単にダウンロードして、ディレクトリ作って配置するだけで済みました。
主に「applet.htmlの内容を修正」、および「appletviewer.exeを使ってアプレットを動かす」段階を忘れそうなので書いておきます。
applet.htmlの内容を修正します
仮に、applet.htmlの中身の<applet>
要素の中身が下記のようであったとします。
<applet code="C" codebase="../../classes" archive="A.zip,B.zip,C.zip">
codebaseを下記のように修正します。
<applet code="C" codebase="classes" archive="A.zip,B.zip,C.zip">
以上です。
要は、アプレットのコードが格納されたディレクトリを、自分の格納したディレクトリへと変更しています。
appletviewer.exeを使ってアプレットを動かします
- appletviewer.exeが格納されたフォルダを探します。
- 見つかったフォルダでコマンドプロンプトを起動します。
- コマンドプロンプト内で下記のコマンドを打ちます。
appletviewer.exe "C:\tmp\demo\applet.html"
これでアプレットを動かせました。
個人的な感想など
demoディレクトリの作成及び配置が終わってしまえば、同じアプレットを使うhtmlは、上記の通り一部修正するだけでアプレットを動かせるようになります。
なので、今後私は、同じドメインの他のページでJavaアプレットを使っているなら、同じディレクトリ(今回はdemo)にhtmlをまとめておくことにします。
廃止の技術なのでいつまでこの方法で動かせるかわかりません。
appletviewer.exeが使えなくなれば、この忘備録の価値もなくなります。
あるいは、仮想マシンなどに古いJavaをインストールしたりして環境を再現すれば動かせないこともないです。面倒ですが。
またこの忘備録の方法を他のシチュエーションで使いたくなったら、再利用性ありということです。
再利用性があるということであれば、Javaアプレットを調べなおして(廃止だからあまり時間かけたくない)、よりしっかりした方法を見つけようと思います。