投稿日時:

今回はJavaの補講をお送りします。

まずは、C言語とJavaのコンパイルについて比較してみましょう。
C言語では複数のソースファイルをコンパイルしてひとつのバイナリコード(exeファイル)を作りますが、Javaでは複数のソースファイルをコンパイルすると、複数のバイトコード(classファイル)が作られます。
そのため、Javaではひとつのアプリケーションを構成するために複数のclassファイルが必要となり、ファイルの管理が煩雑になる場合があります。

そこで使用するのがJAR(Java Archive)です。
JARは複数のバイトコードをひとつにまとめて圧縮する技術になります。

コチラのソースファイルを使用して実演してみましょう。
サンプルの「Source.zip」ファイルには「Main.java」「ClassA.java」「ClassB.java」の3つのファイルが格納されています。

1、Main.javaのコンパイル

javac Main.java

最初に、このコマンドでMain.javaをコンパイルします。
3つのファイルがコンパイルされ、3つのバイトコードが作られます。

2、JARファイルの作成

jar -cf Sample.jar Main.class ClassA.class ClassB.class

次に、このコマンドで「Main.class」「ClassA.class」「ClassB.class」をひとつの「Sample.jar」にまとめて圧縮します。

3、実行確認
これで、圧縮されたSample.jarにてプログラムを実行できるようになりました。
試しにSample.jarだけ別のフォルダに移動して下記のコマンドで実行してみましょう。

java -classpath .;Sample.jar Main

プログラムは実行できたでしょうか?以下が表示できれば実行完了です。

ClassAのメソッド
ClassBのメソッド

このコマンドはプログラムを実行する時に同フォルダ内のクラスと、Sample.jarのクラスも含めるよう設定しています。
クラスパス(classpath)については、またの機会にお送りしましょう。

毎回コマンドで実行すると大変なので、バッチファイルを作成しましょう。
実際の現場では、このバッチファイルとJARファイルを組み合わせてJavaを使用している事が多くなります。

(担当:奥田 英太郎