2692
+ − 1
." Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved.
+ − 2
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ − 3
."
+ − 4
." This code is free software; you can redistribute it and/or modify it
+ − 5
." under the terms of the GNU General Public License version 2 only, as
+ − 6
." published by the Free Software Foundation.
+ − 7
."
+ − 8
." This code is distributed in the hope that it will be useful, but WITHOUT
+ − 9
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ − 10
." FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ − 11
." version 2 for more details (a copy is included in the LICENSE file that
+ − 12
." accompanied this code).
+ − 13
."
+ − 14
." You should have received a copy of the GNU General Public License version
+ − 15
." 2 along with this work; if not, write to the Free Software Foundation,
+ − 16
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ − 17
."
5506
+ − 18
." Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ − 19
." or visit www.oracle.com if you need additional information or have any
+ − 20
." questions.
2692
+ − 21
."
+ − 22
.TH jar 1 "04 May 2009"
+ − 23
." Generated from HTML by html2man (author: Eric Armstrong)
+ − 24
2
+ − 25
.LP
2692
+ − 26
.SH "名前"
+ − 27
jar \- Java ARchive ツール
+ − 28
.LP
+ − 29
\f3jar\fP は複数のファイルを 1 つの JAR アーカイブファイルに結合します。
+ − 30
.RS 3
+ − 31
.TP 2
+ − 32
o
+ − 33
形式
+ − 34
.TP 2
+ − 35
o
+ − 36
説明
+ − 37
.TP 2
+ − 38
o
+ − 39
オプション
+ − 40
.TP 2
+ − 41
o
+ − 42
コマンド行引数ファイル
+ − 43
.TP 2
+ − 44
o
+ − 45
例
+ − 46
.TP 2
+ − 47
o
+ − 48
関連項目
+ − 49
.RE
+ − 50
+ − 51
.LP
+ − 52
.SH "形式"
2
+ − 53
.LP
+ − 54
+ − 55
.LP
2692
+ − 56
.RS 3
2
+ − 57
.TP 3
2692
+ − 58
JAR ファイルの作成
2
+ − 59
\f4jar c\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP
+ − 60
.TP 3
2692
+ − 61
JAR ファイルの更新
2
+ − 62
\f4jar u\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP
+ − 63
.TP 3
2692
+ − 64
JAR ファイルの抽出
2
+ − 65
\f4jar x\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP
+ − 66
.TP 3
2692
+ − 67
JAR ファイルの内容の表形式による一覧表示
2
+ − 68
\f4jar t\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP
+ − 69
.TP 3
2692
+ − 70
JAR ファイルへのインデックスの追加
2
+ − 71
\f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP
2692
+ − 72
.RE
+ − 73
2
+ − 74
.LP
+ − 75
.LP
2692
+ − 76
説明
2
+ − 77
.LP
+ − 78
.RS 3
+ − 79
+ − 80
.LP
2692
+ − 81
.RS 3
2
+ − 82
.TP 3
+ − 83
cuxtiv0Mmfe
2692
+ − 84
\f2jar\fP コマンドを制御するオプション
2
+ − 85
.TP 3
2692
+ − 86
jarfile
+ − 87
作成 (\f2c\fP)、更新 (\f2u\fP)、抽出 (\f2x\fP)、または内容の一覧表示 (\f2t\fP) の対象となる JAR ファイル。\f2f\fP オプションとファイル名 \f2jarfile\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。\f2f\fP と \f2jarfile\fP を省略すると、標準入力から「JAR ファイル」が取得されるか (x および t の場合)、標準出力へ「JAR ファイル」が送信されます(c および u の場合)。
2
+ − 88
.TP 3
2692
+ − 89
inputfiles
+ − 90
\f2jarfile\fP に結合されるか (c および u の場合)、\f2jarfile\fP から抽出 (x の場合) または一覧表示 (t の場合) される、空白で区切られたファイルまたはディレクトリ。すべてのディレクトリは再帰的に処理されます。このファイルは、オプション \f2O\fP (ゼロ) を使用しないかぎり圧縮されます。
2
+ − 91
.TP 3
2692
+ − 92
manifest
+ − 93
\f2name\fP\f2:\fP\f2value\fP のペアが、JAR ファイルの MANIFEST.MF に含まれている既存のマニフェストファイル。\f2\-m\fP オプションとファイル名 \f2manifest\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。\f3m\fP、\f3f\fP、および \f3e\fP の出現順序は、\f2manifest\fP、\f2jarfile\fP、\f2entrypoint\fP の出現順序と一致する必要があります。
+ − 94
.TP 3
2
+ − 95
entrypoint
2692
+ − 96
実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして設定するクラスの名前。\f2\-e\fP オプションと entrypoint は対になっています。 どちらかを指定する場合は両方とも指定する必要があります。\f3m\fP、\f3f\fP、および \f3e\fP の出現順序は、\f2manifest\fP、\f2jarfile\fP、\f2entrypoint\fP の出現順序と一致する必要があります。
2
+ − 97
.TP 3
+ − 98
\-C\ dir
2692
+ − 99
これに続く \f2inputfiles\fP 引数を処理する間、ディレクトリを \f2dir\fP へ一時的に変更します。\f2\-C\ \fP\f2dir\fP \f2inputfiles\fP のセットは複数使用できます。
2
+ − 100
.TP 3
+ − 101
\-Joption
2692
+ − 102
Java 実行環境へ渡されるオプション。\f2\-J\fP と \f2option\fP の間には空白を入れないでください。
+ − 103
.RE
+ − 104
+ − 105
.LP
+ − 106
.RE
+ − 107
.SH "説明"
+ − 108
.LP
+ − 109
+ − 110
.LP
+ − 111
\f3jar\fP ツールは、複数のファイルを 1 つの JAR アーカイブファイルに結合します。 \f3jar\fP は、ZIP および
+ − 112
.na
+ − 113
\f2ZLIB\fP @
2
+ − 114
.fi
2692
+ − 115
http://www.gzip.org/zlib/ 圧縮形式をベースにした、汎用のアーカイブおよび圧縮ツールです。ただし \f3jar\fP ツールの主な目的は、いくつかの Java アプレットやアプリケーションを 1 個のアーカイブに統合することです。アプレットやアプリケーションのコンポーネント (ファイル、イメージ、およびサウンド) が 1 つのアーカイブに結合されていると、Java エージェント (ブラウザなど) は、それらのコンポーネントを 1 回の HTTP トランザクションでダウンロードすることができ、コンポーネントごとに新しい接続を必要とすることがありません。これによって、ダウンロードの回数が大幅に減ります。 また、\f3jar\fP はファイルを圧縮するので、ダウンロード時間も短くなります。また、ファイル内の個々のエントリにアプレット作成者による署名を書き込めるので、配布元の認証が可能になります。jar ツールの構文は、\f2tar\fP コマンドの構文とほぼ同じです。\f3JAR\fP アーカイブは、圧縮されているかどうかにかかわらず、クラスパスのエントリとして使用できます。
+ − 116
.LP
+ − 117
複数のファイルを JAR ファイルへ結合する一般的な使用法は次のとおりです。
+ − 118
.LP
+ − 119
.RS 3
+ − 120
+ − 121
.LP
+ − 122
.nf
+ − 123
\f3
+ − 124
.fl
+ − 125
% jar cf myFile.jar *.class
+ − 126
.fl
+ − 127
\fP
2
+ − 128
.fi
+ − 129
.RE
2692
+ − 130
2
+ − 131
.LP
2692
+ − 132
この例では、現在のディレクトリにあるクラス (.class) ファイルがすべて、\f2myFile.jar\fP という名前のファイルに格納されます。jar ツールは自動的に、\f2META\-INF/MANIFEST.MF\fP という名前のマニフェストファイルエントリを生成します。これは常に、JAR ファイルの最初のエントリになります。マニフェストファイルは、アーカイブに関するメタ情報を宣言し、そのデータを \f2name\ :\ value\fP ペアとして格納します。jar ツールがマニフェストファイル内にメタ情報を格納する方法の詳細については、「
+ − 133
.na
+ − 134
\f2JAR file specification\fP @
2
+ − 135
.fi
2692
+ − 136
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest」を参照してください。
2
+ − 137
.LP
2692
+ − 138
既存のマニフェストファイル内に格納された \f2name\ :\ value\fP ペアを JAR ファイルに含める必要がある場合には、そのファイルを次のように \f2\-m\fP オプションを使って指定します。
2
+ − 139
.LP
+ − 140
.RS 3
+ − 141
+ − 142
.LP
+ − 143
.nf
+ − 144
\f3
+ − 145
.fl
+ − 146
% jar cmf myManifestFile myFile.jar *.class
+ − 147
.fl
+ − 148
\fP
+ − 149
.fi
+ − 150
.RE
+ − 151
+ − 152
.LP
2692
+ − 153
既存のマニフェストファイルは改行文字で終わっている必要があります。 マニフェストファイルが改行文字で終わっていない場合、\f3jar\fP はその最後の行を解析しません。
2
+ − 154
.br
+ − 155
+ − 156
.LP
+ − 157
.br
+ − 158
+ − 159
.LP
2692
+ − 160
\f3注:\ \fPコマンド行に \f2cmf\fP ではなく \f2cfm\fP が指定された jar コマンド (m と \-f オプションの順番を逆にする) の場合、\f3jar\fP コマンド行にまず JAR アーカイブの名前を指定し、続いてマニフェストファイルの名前を指定する必要があります。 次に例を示します。
+ − 161
.RS 3
+ − 162
2
+ − 163
.LP
2692
+ − 164
.nf
+ − 165
\f3
+ − 166
.fl
+ − 167
% jar cfm myFile.jar myManifestFile *.class
+ − 168
.fl
+ − 169
\fP
+ − 170
.fi
2
+ − 171
.RE
2692
+ − 172
2
+ − 173
.LP
2692
+ − 174
マニフェストは、RFC822 ASCII 形式で規定されたテキスト形式であるため、マニフェストファイルの内容を簡単に表示および編集できます。
2
+ − 175
.LP
2692
+ − 176
JAR ファイルからファイルを抽出する場合は、\f2x\fP を使用します。
+ − 177
.LP
+ − 178
.RS 3
+ − 179
2
+ − 180
.LP
2692
+ − 181
.nf
+ − 182
\f3
+ − 183
.fl
+ − 184
% jar xf myFile.jar
+ − 185
.fl
+ − 186
\fP
2
+ − 187
.fi
2692
+ − 188
.RE
+ − 189
+ − 190
.LP
+ − 191
.LP
+ − 192
jar ファイルから個別のファイルを抽出する場合は、そのファイル名を指定します。
+ − 193
.LP
+ − 194
.RS 3
+ − 195
+ − 196
.LP
+ − 197
.nf
+ − 198
\f3
+ − 199
.fl
+ − 200
% jar xf myFile.jar foo bar
+ − 201
.fl
+ − 202
\fP
+ − 203
.fi
+ − 204
.RE
+ − 205
+ − 206
.LP
2
+ − 207
.LP
2692
+ − 208
Java 2 SDK のバージョン 1.3 以降から、\f2jar\fP ユーティリティーで
+ − 209
.na
+ − 210
\f2JarIndex\fP @
+ − 211
.fi
+ − 212
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JARIndex がサポートされています。 JarIndex を使用すると、アプリケーションのクラスローダーで JAR ファイルからクラスがロードされるときの効率が向上します。アプリケーションまたはアプレットが複数の JAR ファイルにバンドルされている場合は、クラスがロードされるときに、必要な JAR ファイル以外のダウンロードおよびオープンは行われません。このパフォーマンスの最適化は、新しい \f2\-i\fP オプションを指定して \f2jar\fP を実行すると有効になります。このオプションを使うと、指定した JAR メインファイルとそのメインファイルが依存しているすべての JAR ファイルについて、パッケージ位置情報が生成されます。 メインファイルが依存している JAR ファイルは、JAR メインファイルのマニフェストの \f2Class\-Path\fP 属性に指定しておく必要があります。
+ − 213
.LP
+ − 214
.RS 3
+ − 215
2
+ − 216
.LP
2692
+ − 217
.nf
+ − 218
\f3
+ − 219
.fl
+ − 220
% jar i main.jar
+ − 221
.fl
+ − 222
\fP
+ − 223
.fi
+ − 224
.RE
+ − 225
+ − 226
.LP
+ − 227
.LP
+ − 228
この例では、\f2INDEX.LIST\fP ファイルが \f2main.jar\fP の \f2META\-INF\fP ディレクトリに挿入されます。
+ − 229
.br
+ − 230
.br
+ − 231
このファイルに格納されている情報を使用して、アプリケーションのクラスローダーは、効率的にクラスをロードします。 インデックスファイルに位置情報を格納する方法の詳細は、 「\f2JarIndex\fP 仕様」を参照してください。
2
+ − 232
.br
+ − 233
.br
2692
+ − 234
ディレクトリをコピーするには、まず \f2dir1\fP 内のファイルを圧縮して標準出力に出力し、続いて標準入力から \f2dir2\fP に抽出します (両方の \f2jar\fP コマンドから \f2\-f\fP オプションを省く)。 次に例を示します。
+ − 235
.LP
+ − 236
.RS 3
+ − 237
2
+ − 238
.LP
2692
+ − 239
.nf
+ − 240
\f3
+ − 241
.fl
2
+ − 242
% (cd dir1; jar c .) | (cd dir2; jar x)
2692
+ − 243
.fl
+ − 244
\fP
+ − 245
.fi
2
+ − 246
.RE
2692
+ − 247
2
+ − 248
.LP
2692
+ − 249
.LP
+ − 250
\f2jar\fP を使って JAR ファイルや JAR ファイルマニフェストを操作するコマンドサンプルを確認するには、「例」を参照してください。また、「
2
+ − 251
.na
2692
+ − 252
\f2Java Tutorial\fP @
+ − 253
.fi
+ − 254
http://java.sun.com/docs/books/tutorial/jar」の JAR コースも参照してください。
+ − 255
.LP
+ − 256
.SH "オプション"
+ − 257
.LP
+ − 258
+ − 259
.LP
+ − 260
.RS 3
+ − 261
.TP 3
+ − 262
c
+ − 263
\f2jarfile\fP の名前で新しいアーカイブファイルを作成するか (\f2f\fP が指定されている場合)、標準出力で作成します (\f2f\fP と \f2jarfile\fP が省略されている場合)。\f2inputfiles\fP で指定されたファイルとディレクトリを、このアーカイブに追加します。
+ − 264
.TP 3
+ − 265
u
+ − 266
\f2inputfiles\fP で指定されたファイルとディレクトリを追加することにより、既存のファイル \f2jarfile\fP を更新します (\f2f\fP が指定されている場合)。 例を示します。
+ − 267
.RS 3
+ − 268
2
+ − 269
.LP
2692
+ − 270
.nf
+ − 271
\f3
+ − 272
.fl
+ − 273
jar uf foo.jar foo.class
+ − 274
.fl
+ − 275
\fP
+ − 276
.fi
2
+ − 277
.RE
2692
+ − 278
上のコマンドは、ファイル \f2foo.class\fP を既存の JAR ファイル \f2foo.jar\fP に追加します。次の例に示すように、\f2\-u\fP オプションは、マニフェストエントリも更新できます。
+ − 279
.RS 3
+ − 280
2
+ − 281
.LP
2692
+ − 282
.nf
+ − 283
\f3
+ − 284
.fl
+ − 285
jar umf manifest foo.jar
+ − 286
.fl
+ − 287
\fP
+ − 288
.fi
+ − 289
.RE
+ − 290
\f2foo.jar\fP マニフェストをマニフェスト内の \f2name:value\fP ペアで更新します。
+ − 291
.TP 3
+ − 292
x
+ − 293
\f2jarfile\fP から (\f2f\fP が指定されている場合)、または標準入力から (\f2f\fP と \f2jarfile\fP が省略されている場合)、ファイルとディレクトリを抽出します。\f2inputfiles\fP が指定されている場合は、その指定したファイルとディレクトリだけが抽出されます。指定されていなければ、すべてのファイルとディレクトリが抽出されます。抽出されたファイルの日時は、アーカイブ内で設定されたものです。
+ − 294
.TP 3
+ − 295
t
+ − 296
\f2jarfile\fP から (\f2f\fP が指定されている場合)、または標準入力から (\f2f\fP と \f2jarfile\fP が省略されている場合)、内容を表形式で一覧表示します。\f2inputfiles\fP が指定されている場合は、その指定したファイルとディレクトリだけが一覧表示されます。指定されていなければ、すべてのファイルとディレクトリが一覧表示されます。
+ − 297
.TP 3
+ − 298
i
+ − 299
指定された \f2jarfile\fP と、それに依存する JAR ファイルについて、インデックス情報を生成します。例を示します。
+ − 300
.RS 3
+ − 301
2
+ − 302
.LP
2692
+ − 303
.nf
+ − 304
\f3
+ − 305
.fl
+ − 306
jar i foo.jar
+ − 307
.fl
+ − 308
\fP
+ − 309
.fi
2
+ − 310
.RE
+ − 311
.LP
2692
+ − 312
上のコマンドは、\f2foo.jar\fP 内に \f2INDEX.LIST\fP ファイルを生成します。 このファイルには、\f2foo.jar\fP と、\f2foo.jar\fP の \f2Class\-Path\fP 属性に指定されたすべての JAR ファイルに入っている各パッケージの位置情報が書き込まれています。 インデックスの例を参照してください。
+ − 313
.TP 3
+ − 314
f
+ − 315
作成 (\f2c\fP)、更新 (\f2u\fP)、抽出 (\f2x\fP)、インデックス追加 (\f2i\fP)、または表示 (\f2t\fP) 対象のファイル \f2jarfile\fP を指定します。\f2f\fP オプションとファイル名 \f2jarfile\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。\f2f\fP と \f2jarfile\fP を省略すると、標準入力から JAR ファイル名が使用されたり (x および t の場合)、標準出力に jar ファイルが 送信されたりします (c および u の場合)。
+ − 316
.TP 3
+ − 317
v
+ − 318
詳細な出力を標準出力に生成します。あとで例を示します。
+ − 319
.TP 3
+ − 320
0
+ − 321
(ゼロ) ZIP による圧縮を使用せずに、保存します。
+ − 322
.TP 3
+ − 323
M
+ − 324
マニフェストファイルエントリを作成しません (c および u の場合)。 または、マニフェストファイルエントリが存在する場合にそれを削除します (u の場合)。
+ − 325
.TP 3
+ − 326
m
+ − 327
\f2META\-INF/MANIFEST.MF\fP のファイルで指定したマニフェストファイル \f2manifest\fP の \f2name :value\fP の属性ペアを組み込みます。すでに同じ名前で存在しない限り、 \f2jar\fP はその \f2name\ :\ value\fP ペアを追加します。同じ名前で存在する場合は、\f2jar\fP はその値を更新します。
2
+ − 328
.LP
2692
+ − 329
コマンド行で、\f3m\fP と \f3f\fP の文字は、\f2manifest\fP と \f2jarfile\fP の入力順序と同じ順序で記述する必要があります。たとえば、次のようにして使います。
+ − 330
.RS 3
+ − 331
2
+ − 332
.LP
2692
+ − 333
.nf
+ − 334
\f3
+ − 335
.fl
+ − 336
jar cmf myManifestFile myFile.jar *.class
+ − 337
.fl
+ − 338
\fP
+ − 339
.fi
2
+ − 340
.RE
2692
+ − 341
デフォルトのマニフェストには含まれないマニフェストに、特別な目的の \f2name\ :\ value\fP の属性ペアを追加できます。たとえば、ベンダー情報、バージョン情報、パッケージシーリング、または JAR にバンドルされたアプリケーションを実行するための属性を追加できます。\f4\-m\fP オプションの使用例については、「Java Tutorial」 にある「
+ − 342
.na
+ − 343
\f2JAR Files\fP @
+ − 344
.fi
+ − 345
http://java.sun.com/docs/books/tutorial/jar/」コースを参照してください。
2
+ − 346
.LP
+ − 347
.TP 3
+ − 348
e
2692
+ − 349
実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして、\f2entrypoint\fP を設定します。このオプションを使用すると、マニフェストファイル内の \f2Main\-Class\fP 属性値が作成または上書きされます。 このオプションは、JAR ファイルの作成中または更新中に使用できます。 このオプションを使えば、マニフェストファイルを編集または作成することなしに、アプリケーションのエントリポイントを指定できます。
2
+ − 350
.br
+ − 351
.br
2692
+ − 352
たとえば、次のコマンドは \f2Main.jar\fP を作成しますが、その際、マニフェストファイル内の \f2Main\-Class\fP 属性値は \f2Main\fP に設定されます。
2
+ − 353
.RS 3
+ − 354
+ − 355
.LP
+ − 356
.nf
+ − 357
\f3
+ − 358
.fl
+ − 359
jar cfe Main.jar Main Main.class
+ − 360
.fl
+ − 361
\fP
+ − 362
.fi
+ − 363
.RE
+ − 364
.LP
2692
+ − 365
次のコマンドを実行すると java ランタイムから直接このアプリケーションを起動できます。
2
+ − 366
.RS 3
+ − 367
+ − 368
.LP
+ − 369
.nf
+ − 370
\f3
+ − 371
.fl
+ − 372
java \-jar Main.jar
+ − 373
.fl
+ − 374
\fP
+ − 375
.fi
+ − 376
.RE
2692
+ − 377
エントリポイントのクラス名が特定のパッケージ内に存在している場合、エントリポイントの区切り文字としてドット (「.」) またはスラッシュ (「/」) を使用できます。たとえば、\f2Main.class\fP が \f2foo\fP という名前のパッケージ内に存在している場合、次のようにしてエントリポイントを指定できます。
2
+ − 378
.RS 3
+ − 379
+ − 380
.LP
+ − 381
.nf
+ − 382
\f3
+ − 383
.fl
+ − 384
jar \-cfe Main.jar foo/Main foo/Main.class
+ − 385
.fl
+ − 386
\fP
+ − 387
.fi
+ − 388
.RE
2692
+ − 389
または
2
+ − 390
.RS 3
+ − 391
+ − 392
.LP
+ − 393
.nf
+ − 394
\f3
+ − 395
.fl
+ − 396
jar \-cfe Main.jar foo.Main foo/Main.class
+ − 397
.fl
+ − 398
\fP
+ − 399
.fi
+ − 400
.RE
2692
+ − 401
\f3注:\ \fP \f2\-m\fP オプションと \f2\-e\fP オプションの両方を同時に指定する場合、指定されたマニフェストにも \f2Main\-Class\fP 属性が含まれていると、\f2Main.class\fP の指定があいまいになってエラーが発生し、JAR の作成または更新処理が異常終了します。
+ − 402
.LP
+ − 403
.TP 3
+ − 404
\-C \ dir
+ − 405
\f2jar\fP コマンドの実行中に後続の \f2inputfiles\fP 引数を処理するときに、一時的にディレクトリを変更します (\f2cd\fP\ \f2dir\fP)。この処理は、UNIX の \f2tar\fP ユーティリティーの \f2\-C\fP オプションの機能に類似しています。
+ − 406
.br
+ − 407
.br
+ − 408
たとえば、次のコマンドは、\f2classes\fP ディレクトリに移動し、そのディレクトリから \f2bar.class\fP を \f2foo.jar\fP に追加します。
2
+ − 409
.RS 3
+ − 410
+ − 411
.LP
+ − 412
.nf
+ − 413
\f3
+ − 414
.fl
+ − 415
jar uf foo.jar \-C classes bar.class
+ − 416
.fl
+ − 417
\fP
+ − 418
.fi
+ − 419
.RE
2692
+ − 420
次のコマンドでは、\f2classes\fP ディレクトリに移動し、\f2classes\fP ディレクトリ内のすべてのファイルを \f2foo.jar\fP に追加します (jar ファイルには classes ディレクトリを作成しません)。 次に元のディレクトリに戻ってから、\f2bin\fP ディレクトリに移動し、\f2xyz.class\fP を \f2foo.jar\fP に追加します。
2
+ − 421
.RS 3
+ − 422
+ − 423
.LP
+ − 424
.nf
+ − 425
\f3
+ − 426
.fl
+ − 427
jar uf foo.jar \-C classes . \-C bin xyz.class
+ − 428
.fl
+ − 429
\fP
+ − 430
.fi
+ − 431
.RE
2692
+ − 432
\f2classes\fP に \f2bar1\fP と \f2bar2\fP が保持されている場合、\f2jar tf foo.jar\fP を使用すると、JAR ファイルには次の要素が含められます。
+ − 433
.RS 3
+ − 434
2
+ − 435
.LP
+ − 436
.nf
2692
+ − 437
\f3
+ − 438
.fl
+ − 439
META\-INF/
+ − 440
.fl
+ − 441
META\-INF/MANIFEST.MF
+ − 442
.fl
2
+ − 443
bar1
2692
+ − 444
.fl
2
+ − 445
bar2
2692
+ − 446
.fl
2
+ − 447
xyz.class
2692
+ − 448
.fl
+ − 449
\fP
2
+ − 450
.fi
+ − 451
.RE
+ − 452
.LP
2692
+ − 453
.TP 3
+ − 454
\-Joption
+ − 455
Java 実行環境に \f2option\fP を渡します。 \f2option\fP には、「Java アプリケーション起動ツール」のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f4\-J\-Xmx48M\fP と指定すると、最大メモリーは 48M バイトに設定されます。\f2\-J\fP を使って背後の実行環境にオプションを渡すことはよく行われています。
2
+ − 456
.RE
2692
+ − 457
+ − 458
.LP
+ − 459
.SH "コマンド行引数ファイル"
+ − 460
.LP
+ − 461
+ − 462
.LP
+ − 463
jar のコマンド行を短くしたり簡潔にしたりするために、\f2jar\fP コマンドに対する引数 (\f2\-J\fP オプションを除く) を含む 1 つ以上のファイルを指定することができます。これにより、任意の長さの jar コマンドを作成でき、オペレーティングシステムによるコマンド行の制限から解放されます。
+ − 464
.LP
+ − 465
引数ファイルにはオプションとファイル名を含めることができます。ファイル内の各引数は、スペースまたは改行で区切ります。引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。 引数ファイルの位置から見た相対パスではありません。ワイルドカード (*) は、通常ならばオペレーティングシステムシェルによってあらゆる文字に解釈されますが、この場合はそのようには解釈されません。引数ファイル内の引数で \f2@\fP 文字を使用して、複数のファイルを再帰的に解釈することはサポートされていません。また、\f2\-J\fP オプションもサポートされていません。 このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。
+ − 466
.LP
+ − 467
.LP
+ − 468
\f2jar\fP を実行するときに、各引数ファイルのパスとファイル名の先頭に \f2@\fP 文字を付けて渡します。\f2jar\fP は、\f2@\fP 文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。
+ − 469
.br
+ − 470
.br
+ − 471
次の例では、\f2find\fP コマンドから出力されたファイル名を \f2classes.list\fP 内に格納しています。
+ − 472
.LP
+ − 473
.RS 3
+ − 474
+ − 475
.LP
+ − 476
.nf
2
+ − 477
\f3
2692
+ − 478
.fl
+ − 479
% find \fP\f3.\fP \-name '*.class' \-print > classes.list
+ − 480
.fl
+ − 481
.fi
+ − 482
.RE
+ − 483
+ − 484
.LP
+ − 485
.LP
+ − 486
その後、引数ファイル構文を使って \f2jar\fP にリストを渡すと、\f2Classes.list\fP で \f2jar\fP コマンドを実行できます。
+ − 487
.LP
+ − 488
.RS 3
+ − 489
2
+ − 490
.LP
2692
+ − 491
.nf
+ − 492
\f3
+ − 493
.fl
+ − 494
% jar cf my.jar @classes.list
+ − 495
.fl
+ − 496
\fP
+ − 497
.fi
+ − 498
.RE
+ − 499
+ − 500
.LP
+ − 501
引数ファイルはパスを指定できますが、相対パスが記述された引数ファイル内のすべてのファイル名は、渡されたパスに対して相対的ではなく、現在の作業ディレクトリに相対的となります。 次に例を示します。
+ − 502
.RS 3
+ − 503
+ − 504
.LP
+ − 505
.nf
+ − 506
\f3
+ − 507
.fl
+ − 508
% jar @path1/classes.list
+ − 509
.fl
+ − 510
\fP
2
+ − 511
.fi
+ − 512
.RE
2692
+ − 513
+ − 514
.LP
+ − 515
.LP
+ − 516
+ − 517
.LP
+ − 518
.SH "例"
+ − 519
.LP
+ − 520
+ − 521
.LP
+ − 522
特定のディレクトリ内のすべてのファイルをアーカイブに追加する (そのアーカイブがすでに存在する場合は、その内容を上書きする) には、次のようにします。\f2\-v\fP オプションを使用して情報を詳細に列挙するように指定すると、サイズや最新の更新日など、アーカイブ内のファイルについての詳細情報が表示されます。
+ − 523
.RS 3
+ − 524
+ − 525
.LP
+ − 526
.nf
2
+ − 527
\f3
2692
+ − 528
.fl
+ − 529
% ls
+ − 530
.fl
+ − 531
1.au Animator.class monkey.jpg
+ − 532
.fl
+ − 533
2.au Wave.class spacemusic.au
+ − 534
.fl
+ − 535
3.au at_work.gif
+ − 536
.fl
2
+ − 537
2692
+ − 538
.fl
+ − 539
% jar cvf bundle.jar *
+ − 540
.fl
2
+ − 541
added manifest
2692
+ − 542
.fl
+ − 543
adding: 1.au(in = 2324) (out= 67)(deflated 97%)
+ − 544
.fl
+ − 545
adding: 2.au(in = 6970) (out= 90)(deflated 98%)
+ − 546
.fl
+ − 547
adding: 3.au(in = 11616) (out= 108)(deflated 99%)
+ − 548
.fl
+ − 549
adding: Animator.class(in = 2266) (out= 66)(deflated 97%)
+ − 550
.fl
+ − 551
adding: Wave.class(in = 3778) (out= 81)(deflated 97%)
+ − 552
.fl
+ − 553
adding: at_work.gif(in = 6621) (out= 89)(deflated 98%)
+ − 554
.fl
+ − 555
adding: monkey.jpg(in = 7667) (out= 91)(deflated 98%)
+ − 556
.fl
+ − 557
adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%)
+ − 558
.fl
+ − 559
\fP
2
+ − 560
.fi
+ − 561
.RE
2692
+ − 562
+ − 563
.LP
+ − 564
すでに画像、オーディオファイル、およびクラス用のサブディレクトリに分けている場合は、これらを単一の JAR ファイルに結合できます。
+ − 565
.RS 3
+ − 566
+ − 567
.LP
+ − 568
.nf
2
+ − 569
\f3
2692
+ − 570
.fl
+ − 571
% ls \-F
+ − 572
.fl
+ − 573
audio/ classes/ images/
+ − 574
.fl
+ − 575
+ − 576
.fl
+ − 577
% jar cvf bundle.jar audio classes images
+ − 578
.fl
+ − 579
added manifest
+ − 580
.fl
+ − 581
adding: audio/(in = 0) (out= 0)(stored 0%)
+ − 582
.fl
+ − 583
adding: audio/1.au(in = 2324) (out= 67)(deflated 97%)
+ − 584
.fl
+ − 585
adding: audio/2.au(in = 6970) (out= 90)(deflated 98%)
+ − 586
.fl
+ − 587
adding: audio/3.au(in = 11616) (out= 108)(deflated 99%)
+ − 588
.fl
+ − 589
adding: audio/spacemusic.au(in = 3079) (out= 73)(deflated 97%)
+ − 590
.fl
+ − 591
adding: classes/(in = 0) (out= 0)(stored 0%)
+ − 592
.fl
+ − 593
adding: classes/Animator.class(in = 2266) (out= 66)(deflated 97%)
+ − 594
.fl
+ − 595
adding: classes/Wave.class(in = 3778) (out= 81)(deflated 97%)
+ − 596
.fl
+ − 597
adding: images/(in = 0) (out= 0)(stored 0%)
+ − 598
.fl
+ − 599
adding: images/monkey.jpg(in = 7667) (out= 91)(deflated 98%)
+ − 600
.fl
+ − 601
adding: images/at_work.gif(in = 6621) (out= 89)(deflated 98%)
+ − 602
.fl
+ − 603
+ − 604
.fl
+ − 605
% ls \-F
+ − 606
.fl
+ − 607
audio/ bundle.jar classes/ images/
+ − 608
.fl
+ − 609
\fP
+ − 610
.fi
+ − 611
.RE
+ − 612
+ − 613
.LP
+ − 614
JAR ファイルのエントリ名を表示するには、「\f2t\fP」オプションを使用します。
+ − 615
.RS 3
+ − 616
+ − 617
.LP
2
+ − 618
.nf
2692
+ − 619
\f3
+ − 620
.fl
2
+ − 621
% jar tf bundle.jar
2692
+ − 622
.fl
+ − 623
META\-INF/
+ − 624
.fl
+ − 625
META\-INF/MANIFEST.MF
+ − 626
.fl
2
+ − 627
audio/1.au
2692
+ − 628
.fl
2
+ − 629
audio/2.au
2692
+ − 630
.fl
2
+ − 631
audio/3.au
2692
+ − 632
.fl
2
+ − 633
audio/spacemusic.au
2692
+ − 634
.fl
2
+ − 635
classes/Animator.class
2692
+ − 636
.fl
2
+ − 637
classes/Wave.class
2692
+ − 638
.fl
2
+ − 639
images/monkey.jpg
2692
+ − 640
.fl
2
+ − 641
images/at_work.gif
2692
+ − 642
.fl
+ − 643
\fP
2
+ − 644
.fi
+ − 645
.RE
2692
+ − 646
+ − 647
.LP
+ − 648
.LP
+ − 649
クラスロードを高速にするためにインデックスファイルを JAR ファイルに追加するには、「\f2i\fP」オプションを使用します。
2
+ − 650
.br
+ − 651
.br
2692
+ − 652
例:
2
+ − 653
.br
+ − 654
+ − 655
.LP
+ − 656
.RS 3
+ − 657
+ − 658
.LP
2692
+ − 659
たとえば、株取引アプリケーション用の相互依存したクラスを、\f2main.jar\fP、\f2buy.jar\fP、および \f2sell.jar\fP という 3 つの JAR ファイルに分割したとします。
+ − 660
.br
+ − 661
+ − 662
.LP
+ − 663
.br
+ − 664
2
+ − 665
.LP
2692
+ − 666
\f2main.jar\fP のマニフェストの \f2Class\-path\fP 属性に次のように指定した場合、
+ − 667
.nf
+ − 668
\f3
+ − 669
.fl
+ − 670
Class\-Path: buy.jar sell.jar
+ − 671
.fl
+ − 672
\fP
+ − 673
.fi
+ − 674
+ − 675
.LP
+ − 676
\f2\-i\fP オプションを使用すれば、アプリケーションのクラスの 読み込みを高速化できます。
+ − 677
.nf
+ − 678
\f3
+ − 679
.fl
+ − 680
% jar i main.jar
+ − 681
.fl
+ − 682
\fP
+ − 683
.fi
+ − 684
+ − 685
.LP
+ − 686
\f2INDEX.LIST\fP ファイルが \f2META\-INF\fP ディレクトリに挿入されます。この結果、アプリケーションのクラスローダーによってクラスまたは リソースの検索が行われるときに、適切な jar ファイルがダウンロードされます。
2
+ − 687
.RE
2692
+ − 688
.SH "関連項目"
2
+ − 689
.LP
+ − 690
+ − 691
.LP
2692
+ − 692
.na
+ − 693
\f2「JAR ファイルの概要」\fP @
2
+ − 694
.fi
+ − 695
http://java.sun.com/javase/6/docs/technotes/guides/jar/jarGuide.html
+ − 696
.br
+ − 697
+ − 698
.LP
2692
+ − 699
.na
+ − 700
\f2「JAR ファイルの仕様」\fP @
2
+ − 701
.fi
+ − 702
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html
+ − 703
.br
+ − 704
+ − 705
.LP
2692
+ − 706
.na
+ − 707
\f2「Jar インデックス」\fP @
2
+ − 708
.fi
2692
+ − 709
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JARIndex
2
+ − 710
.br
+ − 711
+ − 712
.LP
2692
+ − 713
.na
+ − 714
\f2「Jar チュートリアル」\fP @
2
+ − 715
.fi
2692
+ − 716
http://java.sun.com/docs/books/tutorial/jar (Java Software の Web サイト内)
2
+ − 717
.br
+ − 718
+ − 719
.LP
2692
+ − 720
pack200(1)
2
+ − 721
.LP
+ − 722