アプレットとアプリケーション

Javaプログラムは、「いくつかのclassファイル」あるいは「複数のclassファイルや関連するリソースをまとめたjarファイル」の形で動作させる。

パソコンデスクトップで動作するJavaプログラムには、動作形態としてアプレットとアプリケーションという2形態があった。
ただし、アプレットは新しいWebブラウザではサポートされなくなり、Oracle も JDK 9 でアプレットを非推奨にし将来は廃止予定とのことで、アプレットは廃れたと言ってよい。


アプリケーション (application)

OS上で独立して動作するプログラム。
コマンドラインやマウスのダブルクリックなどで実行できる。

約束事として、メインとなるクラスの

public static void main(String[ ] args)

というstaticメソッドから実行を開始する。 このmainというstaticメソッドは String[ ] 型の仮引数 (パラメータ) を持つ。
この String[ ] 型仮引数はプログラム実行時にコマンドラインなどから与えられるパラメータの配列である。配列の length がパラメータの個数を表す。パラメータが与えられていないときは配列の length が 0 となる。

また、mainメソッドには

public static void main(String... args)

という書き方もあり、上記と同じ意味となる。

プログラムがスレッドを生成しない場合は main メソッドが終了すればプログラムは終了する。
スレッドを生成している場合 (GUIのウインドウを開いている場合も含む) は、プログラムで生成したスレッドが全部終了した時点でプログラムが終了する。

System.exit メソッド (正確には java.lang.System.exit メソッド) によって、プログラムが生成したスレッドおよびプログラム自身を終了させることができる。プログラムの終了コードは、このSystem.exitメソッドに渡されたパラメータの値にセットされる。


アプレット (applet)

Webブラウザ上で画面のブロック領域の中で動作するプログラム。
初期のJavaが成功した分野であったが、新しいWebブラウザではサポートされなくなり、廃れた。

HTML文書に applet 要素や object 要素 などで組み込まれて利用されていた。

アプレットのクラスは java.applet.Applet または javax.swing.JAppletサブクラスとして作成する。下表に示すブラウザから呼び出されるコールバックメソッドのうちの必要なものを記述し動作させる。

メソッド説明
public void init()アプレットが初期化されるときに一回だけブラウザから呼び出される。
public void start()アプレットの実行を開始するときに毎回ブラウザから呼び出される。
public void stop()アプレットの実行を停止するときに毎回ブラウザから呼び出される。
public void destroy()アプレットが破棄されるときに一回だけブラウザから呼び出される。


通常、アプレットは、セキュリティの関係上、ネットワークアクセスやファイルアクセスに制限がかかっている。
ただし、アプレットに署名を入れることによって制限を変更することができる。

アプレットの基本構造

    class アプレットのクラス名 extends java.applet.Applet {

または

    class アプレットのクラス名 extends javax.swing.JApplet {
        public void init() {
            // 初期化用コード
              ‥‥‥
        }

        // 必要ならば、start, stop, destroy もオーバーライドする
        public void start() {
              ‥‥‥
        }
        public void stop() {
              ‥‥‥
        }
        public void destroy() {
              ‥‥‥
        }
    }