今回は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を使用している事が多くなります。
(担当:奥田 英太郎)