17.2.3.2 クラスファイル

「1日の秒数プログラム」Seconds.javaを例にして,システム内部での様子を観察してみましょう.ファイル内容の表示をする"cat"コマンドと,ファイルの詳細な一覧を表示する"ls -l"コマンドを使います.

promptcat Seconds.java return2 class Seconds{   public static void main(String argv[ ]){   System.out.println(60*60*24);   } } promptls -l return2 -rw-r--r-- 1 hwb 102 Apr 21 11:00 Seconds.java promptjavac Seconds.java return2 promptls -l return2 -rw-r--r-- 1 hwb 386 Apr 21 11:15 Seconds.class -rw-r--r-- 1 hwb 102 Apr 21 11:00 Seconds.java promptjava Seconds return2 86400

コマンド"java"で,"プログラム名.class"というファイルが作られているのがわかります.通常の言語だと,この大きさが数千から数万バイトになりますが,Javaの中間言語形式ではこのように(386バイト,1バイトは8ビット)小さくなっています.

コマンド"java"は,クラスファイル(ここでは"Seconds.class")を読み,その他の必要機能をシステムから補充した上で,中間言語を理解するソフトウェアを起動し,実際の実行を行なわせます.