[Applet] Appletをブラウザ上で動かす方法
◆はじめに
以下のように、表示されます。
◆Appletとは、
ネットワークを通してWebブラウザに読み込まれ、
ブラウザ上で処理される仕組みのアプリケーション
のことです。
Servletが登場するより前に、
Javaを開発した、サンマイクロ社がつくりました。
Servletとの違いは、
Servletは、サーバー上で行われるのに対して、
Appletは、ユーザーのローカル環境で処理が行われます。
◆前置き
いきなりですが、
私は普段Macを使いますが、Appletをブラウザで表示させることが、
Macユーザーだと厳しい。
Windows環境が必要
だと、まずお伝えせねばなりません。
理由は、現在、Java Appletを動かせるブラウザは、IE(Internet Explorer)だけ
と言っていい状況です。MacでIEは使えません。
IEが廃止され、2022/6/16にEdgeに置き換わりました。
EdgeのIEモードを使用すれば、起動可能かと思われます。[今度は呪文不要、Windows 11で「IE 11」を召喚する方法がまた発見される]
[Windows]+[R]キー)で「control inetcpl.cpl」と入力→[インターネット オプション]ダイアログの[プログラム]タグ→[アドオンの管理]→「ツール バーと拡張機能の詳細」という方法によって、WindowsOS10以降でもIEを強制的に開いて使用することが可能です。***(追記 2023/05/04) Chrome のブラウザを使用する方法**********
公開されているアプレットのゲームなどを動かすだけであれば、
CheerpJ Applet Runnerという、
Chrome の拡張機能を用いる方法もありました。
JavaをJavaScriptに自動で置き換えてくれるようです。
拡張機能をインストール後に、CheerpJ Applet Runnerをクリックして実行することで動きます。
文字化けするなどの弊害はありそうです。
WWA(Wirdl Wide Adventure)という、
Javaアプレットを使用したブラウザ上で動くRPGで、
そのゲーム制作ツールとそのゲーム群があります。
(※現在は、アプレットの廃止に伴って、有志の方々で「WWA Wing」が設立され、
JavaScript版へのゲームの移植や新規ゲーム開発が行われているようです。)
下記サイトのゲームが、WWA(アプレットゲーム)の一例です。
WWAの開発者であるNao氏のサイトで公開されているゲームです。
[組み立てパズル むにむに]
ブラウザでゲームの画面を開いたのちに、ブラウザの拡張機能から
CheerpJ Applet Runnerをクリックすることで起動させることが可能でした。
左から右へ棒人間が一匹づつ現れます。クリックするとその場に止まります。
また別の棒人間が現れます。止まっている状態の棒人間を伝って移動するので、
うまく棒人間をゴールのフラグまで導くことができればクリアです。
文字化けはしちゃってます^^;
でも、遊ぶ分には問題なさそうですので、
是非遊んでみてはいかがでしょうか!
WWAのゲーム制作ツールがあれば、ソースコードも入手可能とのことですので、
eclipseのAppletビューワで動作させることも可能そうです。
*************************************
eclipseのアプレットビューアーなら、Macでも可能です。
Appletはもはや消えかけています。
・HTML5の登場などの理由で、ほとんどのWebブラウザがもはや対応をやめました。
・Java アプレット(Applet) をブラウザで実行させるためのJavaのAppletのプラグイン(Java SE 8)は、2019年3月31日に開発が終了(2030年12月までサポートはされる)
[Java SE 8 の Java Plugin サポートの終了について (Doc ID 2516777.1)]
◆必要な環境やソフト
・WindowsOS(Webブラウザ:Internet Exprollerが必須のため)
・JDK8(Appletを動かせるプラグインが必要なため8以下。手順①までならJRE8でも良い。)
・Webサーバー(ex.ロリポップサーバー)とFTPクライアントソフト(ex.CyberDuckやFFFTP)
Appeletをブラウザ上で表示するために、
HTMLを公開できるサーバーが必要になりますのでご了承ください。
(本記事では、サーバーは、ロリポップサーバーを使用しています。
今回の用途であれば、月額100円程度のプランに加入すれば利用可能かと思います。)
本記事では、
手順①で、他人のつくったAppletをブラウザで表示する方法を説明します
(ここまででも、Webブラウザ上でAppletが動くところを見ることはクリアできますね^^)
手順②以降で、、自作Appletを作り、
サーバーにアップロードして動作を確認するという流れです。
◆手順
①ブラウザで、他人のつくったAppletを動かしてみる
まずブラウザで確認するために、IEを開ける環境を用意します。
WindowsOSのPCか、仮想環境を用意しましょう。
そして、Javaを動かすために、以下のサイトから、Java8のJREをWindowsにインストールしましょう。
●JRE
インストールできたかどうかは、下記コマンドで確認して下さい。
¥ java -version
まずは試しに、誰かの作ったAppletのサンプルプログラムを動かしてみましょう。
ネットで検索して探してみて下さい。
見つけたら、IEで開いてみましょう。
どうでしょうか? Javaのアイコンとロード画面が出たでしょうか。
ただ、セキュリティの問題でエラーになって表示されないのではないかなと思います。
その場合は、
Windowsのコントロールパネルから、全てのプログラム⇨Javaを選択します。
Javaの設定画面が出ますので、セキュリティタブを選択します。
セキュリティレベルは一応「高」にしておきましょう。
そして、開きたいアプレットのWebページのURLを「例外サイト・リスト」に追加します。
追加後に下にある、「セキュリティプロンプトの復元」を押して、変更を適用して閉じます。
もう一度、サイトを開いてみましょう。
次のようなダイアログメッセージが出たでしょうか。
これで、実行すれば開けると思います。
②自作Appletをつくる
まず、Javaの開発環境を整えましょう。Javaを見るだけならば、JREで良いのですが、
コンパイルなどをして、開発するには、JDKが必要になりますので、ダウンロードして下さい。
●JDK(Java SE Development Kit 8u311)
インストールできたかどうかは、下記コマンドで確認してください。
¥ javac -version
次に、AppletのJavaファイルを作成しましょう。
Helloと文字を描画するプログラムを作成します。
import java.awt.Graphics;
import java.applet.Applet;
public class Hello extends Applet{
public void paint(Graphics g){
g.drawString("Hello Applet",25,25);
}
}
できたら、今度は、このプログラムをコンパイルします。
¥ javac Hello.java
すると、「Hello.class」が作成されます。
最後に、Appletを動かすHtmlファイルを作成しましょう。
<!DOCTYPE html>
<html>
<head>
<title>Applet</title>
</head>
<body>
<applet code = "Hello.class" weight = 100 height = 100>
</applet>
</body>
</html>
以上で、プログラムの準備は完了です。
因みに、AppletがJava16などでコンパイルされている場合、
下記のエラーがブラウザ上で開くときに出て開けないため、注意しましょう。
それでは、次は、ウェブブラウザで実際に動かしていく準備をしていきましょう。
③自作AppletをWebサーバーで公開して、ブラウザ上で動かす
では、サーバーを使用して、自作Appletをウェブブラウザで見れるようにしていきたいと思います。サーバーは、HTMLが公開できればなんでもいいのですが、ロリポップサーバーで説明していきます。
今回の用途であれば、月額100円程度のプランに加入すれば可能かと思います。
まず、サーバーにFTP通信で接続しましょう。FTPクライアントソフトは「CyberDuck」を使用しています。接続方法は、「ロリポップサーバー CyberDuck FTP接続」などで検索していただければ出てくると思いますが、下記サイトなどご参考にしてください。
接続できましたら、
サーバーの同じディレクトリ上に、Appletの.classファイルとAppletを動かすHtmlファイルを置きましょう。
では、最後に①で他人のAppletを表示した時と、同じように、
セキュリティに関する設定を行って、ブラウザ上で下記のように表示されたら成功です。
◆さいごに
お疲れ様でした。いかがだったでしょうか。
Applet自体、もう古くなっているためそもそも学習する必要性がないとも聞きます。
ですが、
知的好奇心などから取り組んだのですが、
思った以上に
「互換性」という問題
が立ちはだかり実際に動かすということが困難でした。
自分も、Macユーザーなのですが、たまたまサブ機でWindowsPCも持っていました。
ただ、スペックが低いかったため、プログラムの開発やサーバー操作はMac、
ブラウザ上での確認はWindowsということで行いました。
いつ、使えなくなるかわからないApplet
ですが、
だからこそ、今のうちに
触って確かめてみるのも良いのかなと思ってやりました。
Discussion