Java 入門

ホーム > コンパイルとプログラムの実行 > jar ファイルの作成とプログラムの実行

jar ファイルの作成とプログラムの実行

Java はオブジェクト指向言語ということで、ファイル名までクラス毎に分割しています。

そして、それぞれのソースファイル毎にコンパイルできて、それが *.class ファイルとして作成される。

こうした流れは 「分割コンパイルと CLASSPATH」でみたとおりです。

しかし、ひとつのプログラムはひとつのファイルにまとめあがっていたほうが、バージョン管理、ネットワーク越しの転送、セキュリティ管理などに有利です。

こうした目的のために、Java では Java アーカイブ (*.jar) ファイルとして、ひとつのファイルにパッケージすることができます。

jar による Java アーカイブの作成

分割コンパイルと CLASSPATH」で作成したプログラムを例に取り、Java アーカイブを作成する方法を紹介します。

この例ではプログラムが TestApp.class、Employee.class、Person.class の三つのバイトコードから構成されています。これをひとつのファイルにパッケージングするには次のコマンドを実行します。

> jar cfe TestApp.jar TestApp *.class

この結果、TestApp.jar が作成されます。これを実行するには -jar オプションを指定して次のようにします。

> java -jar TestApp.jar

上記のコマンドのオプションを説明します。

jar は Java アーカイブ (Java Archive) を作成するコマンドです。オプションの cf は「ファイルを作成 (create file)」の意味です。 作成するファイル名はその後に指定した TestApp.jar です。

cfe の e は「エントリーポイント (entry point) を指定する」というという意味です。エントリーポイントというのはプログラムの開始場所のことです。 Java アーカイブの中には複数の Java クラスを指定することが可能ですが、その中でどのクラス (の main ) からプログラムを開始するのか指定するということです。ここでは TestApp を指定しています。

このエントリーポイントはメインクラスと言われ、jar ファイルの中に作成されるマニフェストファイル (MANIFEST.MF) に記録されます。

Manifest-Version: 1.0
Created-By: 1.7.0_51 (Oracle Corporation)
Main-Class: TestApp

jar の最後のパラメータは *.class ですが、これは同じディレクトリ内の全ての class ファイルを表しています。class ファイルは *.java ファイルをコンパイルした結果作成されるバイトコードでしたね。

*.jar を実行するときには、java に -jar オプションを指定します。

ホーム > コンパイルとプログラムの実行 > jar ファイルの作成とプログラムの実行