Appletはどこにあるのか?

Applet のファイルの管理について説明します。


Applet はプログラムですから、どこかにファイルとして存在しているはずです。 また、新しい Applet を使いたい場合には、どうやって準備すれば いいのでしょうか?

Applet は Java言語というプログラミング言語で開発します。 そのソース・ファイルは、HandBell.java のように .java という識別子を付けてください。 このソース・ファイルは直接 HotJava が読み込むわけではありません。 どのディレクトリに置いてもかまいません。
このソース・ファイルを「コンパイル」することによって、 実際に HotJava に読み込まれる「実行プログラム」が生成されます。 コンパイラの名前は javac です。


javac  HandBell.java

この結果、.class という識別子を持つ新しいファイルができます。

注意:

  1. ここで生成される .classファイルは正確に言うと、 マシン語のバイナリ・ファイルではありません。 「仮想マシン」と呼ばれる現実には存在しないマシンのためのファイルです。 この結果、Java言語で「コンパイル」されたファイルは、 マシンに依存しません。

  2. 1つの.javaファイルに、1つの.classファイルが対応する とは限りません。1つのソース・ファイルの中に複数のクラスの定義が あると、その数だけ.classが生成されます。 ただ Applet を開発する場合には、 不要な混乱を避けるため、1つのクラスに対して1つの.java ファイルを作成した方がいいでしょう。ファイル名の前半部分も共通になるように するのが普通です。

新しい Applet のための .class ファイルができたとします。 このファイルはどこに置けばいいのでしょうか?

Applet のデータは、通常の他のデータのように URL で指定するわけではありません。 その代わりに、HotJava が「クラス・パス(CLASSPATH)」という環境変数で指定された 場所を自動的に捜しにいくことになっています。
たとえば、Java言語の基本パッケージのクラスは、HotJava がインストール された時点で場所が決められているので、通常は問題ありません。 (もちろん CLASSPATH にその値を読み込むように HotJava起動時に設定する。)
問題は全く新しい Appletを開発して、それを HotJava が捜しにいくことが できるようにする方法です。 インターネットで違うサイトのページを見る場合でも、 ちゃんと Applet の .class ファイルを見つる必要があるのです。
これに対する一番確実な方法は、HTML のファイルが置かれているページに Applet のクラスのディレクトリ(名前は通常は classes)を作っておくことです。
たとえば、Appletを利用する HTML のファイルが ~/www/hotjava に存在するなら、 ~/www/hotjava/classes というディレクトリを作成し、 その中に必要な .class ファイルを入れておきます。
HotJava の CLASSPATH の中にカレント・ディレクトリ( . ) が設定されていれば(それが普通)、 Applet のデータを読みにいくことができます。

上に述べた方法が面倒なのは、各ディレクトリごとに classes という名前の ディレクトリを用意し、しかも必要な Applet のファイルを全て 用意する必要がある点です。
この不便さは現在のバージョン(α3バージョン)では解決できませんが、 今後のβバージョンでは改善される予定です。 (それに伴って HTML 内でのクラスの指定方法が多少変更される予定です。)