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


・ Java2 SDK(Java 2 Standard Development Kit) によるJava言語のアプリケーション開発の手順は、 次のようになります。

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

形式的には Java以前の主要な言語である C および C++、 COBOL、FORTRANなどの開発手順と似ています。 一般に他の言語に比べて開発手順はずっと単純です。 プロプロセッサやリンカなどは存在しません。 またマシンや OSが異なる環境に移っても開発環境にほとんど違いは生じません。 しかしシンプルな構成にもかかわらず、 コンパイラなどのツール群は、 大規模なアプリケーションの開発にも十分耐えうるように設計されています。
Javaの場合コンパイラが生成するのは、 直接実行可能なマシン語のファイルではありません。 仮想マシン(JVM)と呼ばれるソフトウェアが処理します。 JVMを呼び出す働きをするのが、javaコマンドです。 このような実行の方法は、perlなどのインタープリタ形式の言語と共通しています。

もしコンパイル時もしくは実行時にエラーが発生した場合は、 適当な修正作業(デバッグ)を行います。
Javaのソースファイルには拡張子 .java を付けます。 また Javaのソースファイルは1つまたは複数のクラス定義で構成されますが、 ソースファイル名はそれらのクラスのうちのどれかと一致していなくてはいけません。 クラス名は習慣として先頭および単語の区切りの先頭をアルファベットの大文字 にします。 したがって WakkanaiHokusei というクラスの定義を記述するためのソースファイルは、 WakkanaiHokusei.javaという名前になります。 Windowsなどのシステムでは、 歴史的な理由からファイル名の大文字・小文字の区別があいまいに取り扱われることがあります。 しかし javac など Javaの開発環境のツールは、大文字・小文字の区別を厳格に行います。
実は Javaのクラス名はアルファベットである必要はありません。 日本語など非アフファベットの文字でクラス名を定義することも可能です。 ただし日本語の使用は、特別な場合を除けばあまり実用性はないでしょう。
バイトコードにはコンパイラによって生成される時に拡張子 .class が付けられます。 バイトコードの実行は、 javaコマンドによって仮想マシンを直接呼び出してバイト・コードを指定するか、 もしくはWebのブラウザのように Javaの仮想マシンを内蔵したアプリケーションによって行われます。 Javaのバイト・コードは、すべてクラスごとに独立したファイルとして生成されます。 それぞれのモジュールは必要になった時にダイナミックにロードされます。

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


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

public class Welcome {

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

     static public void main( String[] args ) {

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

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


javac  Welcome.java

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


java  Welcome

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