0-3-1: Javaのプログラムの開発手順開発


・ JDK(Java Development Kit) によるJava言語のアプリケーション開発の手順は、 次のようになります。 形式的には C および C++ のそれに似ています。

  1. ソースファイルのエディット
  2. javacコマンドによるコンパイル
  3. 生成されたバイトコードの実行

コンパイル時もしくは実行時にエラーが発生した場合は、 適宜デバッグを行います。
Javaのソースファイルには拡張子 .java を付けます。 また Javaのソースファイルは1つまたは複数のクラス定義で構成されますが、 ソースファイル名はそれらのクラスのうちのどれかと一致していなくてはいけません。 クラス名は習慣として先頭および単語の区切りの先頭をアルファベットの大文字 にします。 したがって WakkanaiHokusei というクラスの定義を記述するためのソースファイルは、 WakkanaiHokusei.javaという名前になります。 バイトコードにはコンパイラによって生成される時に拡張子 .class が付けられます。 バイトコードの実行は、 javaコマンドによって仮想マシンを直接呼び出してバイト・コードを指定するか、 もしくはWebのブラウザのように Javaの仮想マシンを内蔵したアプリケーションによって行われます。
Javaには C や C++ にあるようなプリプロセッサの処理は存在しません。 Javaのバイト・コードは、すべてクラスごとに独立したファイルとして生成されます。 それぞれのモジュールは必要になった時にダイナミックにロードされます。 つまり開発の作業は基本的に、 javac によるコンパイルと、仮想マシンを通じての実行という 2つの段階しかありません。 C や C++ のコンパイルのコマンドが、 プリプロセッサやリンカを呼び出すとは異なります。 プログラマーが覚えるべきことは最小限でよく、 初心者でもすぐ開発に取りかかることができます。 またマシンや OSが異なる環境に移っても開発環境にほとんど違いは生じません。

・ ただし上のような事実から JDKが単純な機能しか提供していないと早合点してはいけません。 コンパイラ javac は 単にバイトコードを生成する機能を提供するだけではありません。 開発のための強力なツールとしての役割も果たします。 javac には、それぞれのクラスのソースファイルの相互依存や 作成された日時をチェックする機能が組み込まれています。 たとえば、 複数のクラスのモジュールからなるアプリケーションを開発しているとしましょう。 そのモジュールのいくつかに変更を加えた場合、 もちろんモジュールの1個1個を順番にコンパイルし直してもよいのですが、 実はもっと簡単な方法があります。 アプリケーションの本体のクラスを javac でコンパイルする作業を1回行うだけでいいのです。 これで目的は達成されます。 アプリケーションのクラスのソース自体には変更がなくても、 javac は自動的に依存するクラスをチェックし、 変更があったものを見つけるとリコンパイルしてくれるからです。 要するに javac は makeコマンドと同じような機能を提供してくれます。 しかも、その際に依存関係を記述したファイル( Makefile の相当するもの) を特に用意する必要もありません。 JDK の開発環境はきわめてシンプルな構成にもかかわらず、 大規模なアプリケーションの開発にも十分耐えうるように設計されているのです。

・ 上の手順を非常に単純なサンプルで確認してみましょう。 ソースファイルの中身は次のようなものです。


/** メッセージを標準出力に表示するクラス */

public class Welcome {

    /** 処理の開始のメソッド */

     static public void main( String argv[] ) {

           System.out.println("Welcome to Wakkanai Web!");
     }
}

クラス名が Welcome なので、 このソースファイルは Welcome.java という名前で用意します。 そして javacコマンドの引数に、そのファイル名を指定してコンパイルします。


javac  Welcome.java

プログラムが文法的に正しければ、コンパイラはバイトコードを生成します。 ここでは Welcome.class という名前になります。 それを仮想マシンに実行させるためには javaコマンドの引数にクラス名を指定します (バイトコード名ではないので注意)。


java  Welcome

これでプログラムが実行されます。 上のプログラムならば、標準出力に "Welcome to Wakkanai Web!" という メッセージが表示されることになります。