【コラム】

Hello Worldコレクション

7 Java編 - アプリケーションとアプレットのコーディングの違い

    山森丈範  [2008/05/16]

    JavaアプリケーションのHello World

    第7回は、Javaで書いたHello Worldです。Javaのプログラムは、JavaアプリケーションとJavaアプレットに分けて考えることができます。JavaアプレットはWebブラウザ上で実行されるプログラムですが、JavaアプリケーションはOS上からコマンドとして起動されるプログラムです。

    JavaアプリケーションのHello Worldは、リスト1のように、print()メソッドを使って文字列を出力すればOKです。このように、Javaアプリケーションはmain()メソッドから実行が開始されます。System.outは標準出力を意味します。なお、print()では改行コードは付加されないため、文字列の終端に"\n"を付けておきます。

    リスト1 printを使う方法(JavaApplicationPrint.java)

    public class JavaApplicationPrint {           ← クラスの定義を開始
      public static void main(String[] args) {    ← main()メソッド開始
        System.out.print("Hello World\n");        ← print()でメッセージ出力
      }
    }
    

    リスト2のように、print()の代わりにprintln()メソッドを使えば改行コードが付加されるため、文字列に"\n"を付ける必要はありません。

    リスト2 printlnを使う方法(JavaApplicationPrintln.java)

    public class JavaApplicationPrintln {
      public static void main(String[] args) {
        System.out.println("Hello World");        ← println()なら改行コードは不要
      }
    }
    

    Javaのプログラムは、実行例1のようにjavacコマンドを使ってコンパイルします。コンパイルに成功すると、「拡張子.class」のクラスファイルが作成されます。Javaアプリケーションの実行にはjavaコマンドを使い、引数にクラス名(拡張子.classは付けない)を指定します。

    実行例1 Javaのプログラムのコンパイルと実行

    $ javac JavaApplicationPrint.java   ← javacで、Javaのソースをコンパイル
    $ ls *.class                        ← 拡張子.classのファイルを確認
    JavaApplicationPrint.class          ← 確かにコンパイルされている
    $ java JavaApplicationPrint         ← javaコマンドを使ってクラスファイルを実行
    Hello World                         ← 確かにHello Worldが表示される
    $                                   ← シェルのプロンプトに戻る
    

    GUIのJavaアプリケーション

    Javaアプリケーションは、テキストベースでの動作だけでなく、ウィンドウベース(GUI)でも動作します。リスト3はGUIのJavaアプリケーションです。このプログラムをjavacでコンパイルし、javaコマンドでクラスファイルを実行すると、図1のようなウィンドウが立ち上がるはずです。メッセージはウィンドウの中に表示されます。ウインドウタイトル部分に表示されているHello Worldは、フレームのタイトル文字列です。

    なお、このプログラムには終了のためのコードがないため、コマンドラインに[Ctrl]+[C]を入力するなどして終了してください。

    リスト3 GUIのJavaアプリケーション(JavaGuiHello.java)

    import java.awt.*;                           ← GUIを使うために必要
    
    public class JavaGuiHello {
      public static void main(String[] args) {
        Frame f = new Frame("Hello World");      ← フレームを作成(タイトル付き)
        f.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 30));  ← ほぼ中央に配置
        f.setSize(200, 100);                     ← フレームのサイズを指定
        f.add(new Label("Hello World"));         ← ラベルでメッセージを貼り付ける
        f.setVisible(true);                      ← フレームを可視状態にする
      }
    }
    

    図1 GUIのJavaアプリケーション

    Javaアプレットの場合

    JavaアプレットのHello Worldはリスト4のとおりです。このように、Javaアプレットのプログラムにはmain()がありません。メッセージは、paint()メソッドの中でdrawString()を使って描画します。

    リスト4 Javaアプレットの場合(JavaAppletHello.java)

    import java.applet.*;                          ← アプレットを使うために必要
    import java.awt.*;                             ← GUIを使うために必要
    
    public class JavaAppletHello extends Applet {  ← Appletクラスを継承
      public void paint(Graphics g) {              ← paint()メソッド開始
        g.drawString("Hello World", 60, 50);       ← メッセージを描画(座標も指定)
      }
    }
    

    Javaアプレットを実行するためには、HTMLファイルが必要です。最低限の記述を行ったHTMLファイルはリスト5のとおりです。このように<applet>タグを使い、その属性値でクラスファイルと表示サイズを指定します。

    リスト5 JavaアプレットのためのHTMLファイル(JavaAppletHello.html)

    <applet                            ← <applet>タグ開始
      code="JavaAppletHello.class"     ← code属性でクラスファイルを指定
      width=200 height=100>            ← width/height属性で表示サイズを指定
    </applet>                          ← <applet>タグ終了
    

    このHTMLファイルを、Webブラウザまたはappletviewerコマンド(実行例2)で開けば Javaアプレットが実行されます(図2)。

    実行例2 appletviewerでJavaアプレットを実行

    $ appletviewer JavaAppletHello.html   ← コマンドラインからappletviewerを実行
    

    図2 appletviewerによるJavaアプレットの表示

    Javaアプリケーション兼アプレット

    プログラムを工夫することにより、JavaアプリケーションとしてもJavaアプレットとしても動作するようにすることができます(リスト6)。このプログラムは、Javaアプレットとして起動された場合はpaint()メソッドのみが実行され、通常のJavaアプレットとして動作します。Javaアプリケーションとして起動された場合は、まずmain()メソッドが実行され、この中で自分でアプレットを作成し、サイズを指定して画面表示を行っています。

    なお、Javaアプレットとして起動する場合は、通常のJavaアプレットと同様にHTMLファイルが必要です。

    リスト6 Javaアプリケーション兼アプレット(JavaGuiApplet.java)

    import java.applet.*;
    import java.awt.*;
    
    public class JavaGuiApplet extends Applet {
      public void paint(Graphics g) {            ← Javaアプレットのpaint()
        g.drawString("Hello World", 60, 50);     ← メッセージを描画
      }
    
      public static void main(String[] args) {   ← Javaアプリケーション用main()
        Frame f = new Frame("Hello World");      ← フレームを作成
        Applet a = new JavaGuiApplet();          ← 自分でアプレットを作成
        f.setSize(200, 100);                     ← フレームのサイズを指定
        f.add(a);                                ← フレームにアプレットを貼る
        f.setVisible(true);                      ← フレームを可視状態にする
      }
    }
    
    関連したタグ

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン