複数のファイルを 1 つの Java アーカイブ (JAR) ファイルに統合します。
jar [ options ] [manifest] destination input-file [input-files]
jar ツールは、複数のファイルを 1 つの JAR アーカイブファイルに統合する java アプリケーションです。jar は、ZIP や ZLIB の圧縮形式を基本とした汎用アーカイブおよび圧縮ツールです。 jar は、主として java アプレットやアプリケーションを 1 つのアーカイブにパッケージ化するのを容易にするために考案されました。java アプレットやアプリケーション (.class ファイル、イメージおよびサウンド) のコンポーネントが 1 つのアーカイブに統合されるとき、java エージェント (ブラウザなど) の 1 回の HTTP 処理だけでダウンロードできますので、各ファイルごとに新しく接続をする必要はありません。これでダウンロード時間が驚くほど短縮されます。 また jar はファイルを圧縮し、さらにダウンロード時間を短くします。さらに、作成元の認証を可能にするために、アプレット作成者による署名を、ファイルの個々のエントリに書き込むことができます。jar ツールの構文は、tar
コマンドの構文とほぼ同じです。jar ツールのエントリファイルには、次の 3 つの種類があります。
- manifest ファイル (オプションl)
- 出力先 jar ファイル
- アーカイブするファイル
標準的な使い方は次のとおりです。
C:\> jar cf myjarfile *.classこの例では、現在のディレクトリのクラスファイルはすべて、"myjarfile" という名前のファイルに置かれます。 manifest ファイルは、jar ツールによって自動的に生成され、jar ファイルの中で常に最初に置かれます。デフォルトでは、META-INF/MANIFEST.INF と名付けられます。 manifest ファイルには、アーカイブのメタ情報が格納されています。 manifest ファイルにメタ情報がどのようにして格納されるかについての詳細は、manifest 仕様 を参照してください。jar ツールを既存の manifest ファイルに使用して、新しい jar アーカイブを作成する場合、-m オプション使用して指定することができます。
C:\> jar cmf myManifestFile myJarFile *.classjar アーカイブにファイルを追加する場合、ファイルの他に MD5 や SHA ハッシュを格納します。ハッシュは manifest ファイルに入れられます。 manifest ファイルは RFC822 ascii 形式を使用しているため、内容の表示や処理は容易に行えます。
ファイルとしてディレクトリを指定した場合、そのディレクトリは再帰的に処理されます。
c
- 標準出力に新規または空のアーカイブを作成します。
t
- 標準出力から内容を表形式でリストします。
x
file- すべてのファイルまたは指定のファイルだけを、標準入力から展開します。file の指定を省略した場合、すべてのファイルが展開されます。指定した場合は、指定のファイルだけを展開します。
f
- 2 つ目の引数で、処理される jar ファイルを指定します。
c
reation オプションの場合、(標準出力の代わりに) 作成される jar ファイルとなります。t
able またはx
tract では、2 つ目の引数はリストされる、または展開される jar ファイルです。
v
- 標準エラーに詳細を出力します。
特定のディレクトリのファイルをすべて、アーカイブに追加する場合:
C:\WWWROOT\JAVA> ls 12/09/96 12:20a <DIR> . 12/09/96 12:17a <DIR> .. 12/09/96 12:18a 1,010 0.au 12/09/96 12:18a 946 1.au 12/09/96 12:18a 1,039 2.au 12/09/96 12:18a 993 3.au 12/09/96 12:18a 1,006 4.au 12/09/96 12:18a 1,016 5.au 12/09/96 12:18a 1,048 6.au 12/09/96 12:18a 980 7.au 12/09/96 12:18a 1,064 8.au 12/09/96 12:18a 989 9.au 12/09/96 12:19a 48,072 spacemusic.au 12/09/96 12:19a 527 at_work.gif 12/09/96 12:19a 12,818 monkey.jpg 12/09/96 12:19a 16,242 Animator.class 12/09/96 12:20a 3,368 Wave.class 17 File(s) 91,118 bytes 414,983,168 bytes free C:\WWWROOT\JAVA> jar cvf bundle.jar * adding: 0.au adding: 1.au adding: 2.au adding: 3.au adding: 4.au adding: 5.au adding: 6.au adding: 7.au adding: 8.au adding: 9.au adding: Animator.class adding: Wave.class adding: at_work.gif adding: monkey.jpg adding: spacemusic.au C:\WWWROOT\JAVA>html ディレクトリの中に、イメージ、オーディオファイルおよびクラス用のサブディレクトリがすでにある場合、1 つの jar ファイルの中に各ディレクトリをまとめることができます。C:\WWWROOT\JAVA> DIR 12/09/96 12:11a <DIR> . 12/09/96 12:17a <DIR> .. 12/03/96 06:54p <DIR> audio 12/06/96 02:02p <DIR> images 12/09/96 12:10a <DIR> classes 6 File(s) 207,360 bytes 414,983,168 bytes free C:\WWWROOT\JAVA> jar cvf bundle.jar audio classes images adding: audio/1.au adding: audio/2.au adding: audio/3.au adding: audio/spacemusic.au adding: classes/Animator.class adding: classes/Wave.class adding: images/monkey.jpg adding: images/at_work.gif C:\WWWROOT\JAVA\Animator> dir 12/09/96 12:11a <DIR> . 12/09/96 12:17a <DIR> .. 12/09/96 12:11a 207,360 bundle.tar 12/03/96 06:54p <DIR> audio 12/06/96 02:02p <DIR> images 12/09/96 12:10a <DIR> classes 6 File(s) 207,360 bytes 414,983,168 bytes free C:\WWWROOT\JAVA\Animator>jar ツールと "t" オプションにより、jar ファイルの中のエントリ名を見ることができます。C:\WWWROOT\JAVA\Animator> jar tf bundle.jar META-INF/MANIFEST.MF audio/1.au audio/2.au audio/3.au audio/spacemusic.au classes/Animator.class classes/Wave.class images/monkey.jpg images/at_work.gif C:\WWWROOT\JAVA\Animator>"v" オプションを使用して詳細を列挙すると、サイズや最新の更新日など、アーカイブファイルについての情報がさらに増えます。C:\WWWROOT\JAVA\Animator> jar tvf bundle.jar 145 Thu Aug 01 22:27:00 PDT 1996 META-INF/MANIFEST.MF 946 Thu Aug 01 22:24:22 PDT 1996 audio/1.au 1039 Thu Aug 01 22:24:22 PDT 1996 audio/2.au 993 Thu Aug 01 22:24:22 PDT 1996 audio/3.au 48072 Thu Aug 01 22:24:23 PDT 1996 audio/spacemusic.au 16711 Thu Aug 01 22:25:50 PDT 1996 classes/Animator.class 3368 Thu Aug 01 22:26:02 PDT 1996 classes/Wave.class 12809 Thu Aug 01 22:24:48 PDT 1996 images/monkey.jpg 527 Thu Aug 01 22:25:20 PDT 1996 images/at_work.gif C:\WWWROOT\JAVA\Animator>
jar ガイド
javakey
manifest ファイルフォーマット