jar.1 20.2 KB
Newer Older
1
." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
T
tbell 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
."
." This code is free software; you can redistribute it and/or modify it
." under the terms of the GNU General Public License version 2 only, as
." published by the Free Software Foundation.
."
." This code is distributed in the hope that it will be useful, but WITHOUT
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
." version 2 for more details (a copy is included in the LICENSE file that
." accompanied this code).
."
." You should have received a copy of the GNU General Public License version
." 2 along with this work; if not, write to the Free Software Foundation,
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
."
18 19 20
." Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
." or visit www.oracle.com if you need additional information or have any
." questions.
T
tbell 已提交
21
."
22
.TH jar 1 "14 Apr 2011"
T
tbell 已提交
23 24

.LP
25 26
.SH "名前"
jar \- Java ARchive ツール
T
tbell 已提交
27
.LP
28
\f3jar\fP は複数のファイルを 1 つの JAR アーカイブファイルに結合します。 
T
tbell 已提交
29 30 31
.RS 3
.TP 2
o
32
形式 
T
tbell 已提交
33 34
.TP 2
o
35
説明 
T
tbell 已提交
36 37
.TP 2
o
38
オプション 
T
tbell 已提交
39 40
.TP 2
o
41
コマンド行引数ファイル 
T
tbell 已提交
42 43
.TP 2
o
44

T
tbell 已提交
45 46
.TP 2
o
47
関連項目 
T
tbell 已提交
48 49 50
.RE

.LP
51
.SH "形式"
D
duke 已提交
52
.LP
T
tbell 已提交
53
.RS 3
D
duke 已提交
54
.TP 3
55
JAR ファイルの作成 
D
duke 已提交
56 57
\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 
.TP 3
58
JAR ファイルの更新 
D
duke 已提交
59 60
\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 
.TP 3
61
JAR ファイルの抽出 
D
duke 已提交
62 63
\f4jar x\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP 
.TP 3
64
JAR ファイルの内容の表形式による一覧表示 
D
duke 已提交
65 66
\f4jar t\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP 
.TP 3
67
JAR ファイルへのインデックスの追加 
D
duke 已提交
68
\f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP 
T
tbell 已提交
69 70
.RE

D
duke 已提交
71 72
.LP
.LP
73
説明
D
duke 已提交
74
.LP
T
tbell 已提交
75
.RS 3
D
duke 已提交
76 77
.TP 3
cuxtiv0Mmfe 
78
\f2jar\fP コマンドを制御するオプション 
D
duke 已提交
79
.TP 3
T
tbell 已提交
80
jarfile 
81
作成 (\f2c\fP)、更新 (\f2u\fP)、抽出 (\f2x\fP)、または目次表示 (\f2t\fP) の対象となる JAR ファイル。\f2f\fP オプションとファイル名 \f2jarfile\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。 \f2f\fP と \f2jarfile\fP を省略すると、標準入力から「JAR ファイル」が取得されるか (x および t の場合)、標準出力へ「JAR ファイル」が送信されます(c および u の場合)。 
D
duke 已提交
82 83
.TP 3
inputfiles 
84
\f2jarfile\fP に結合されるか (c および u の場合)、\f2jarfile\fP から抽出 (x の場合) または一覧表示 (t の場合) される、空白で区切られたファイルまたはディレクトリ。すべてのディレクトリは再帰的に処理されます。このファイルは、オプション \f20\fP (ゼロ) を使用しないかぎり圧縮されます。 
D
duke 已提交
85
.TP 3
T
tbell 已提交
86
manifest 
87
JAR ファイルの MANIFEST.MF 内に含めるべき \f2name\fP\f2:\fP \f2value\fP ペアが含まれている既存のマニフェストファイル。\f2m\fP オプションとファイル名 \f2manifest\fP とがペアになります。つまり、片方を記述すれば、もう一方も記述する必要があります。\f3m\fP、\f3f\fP、および \f3e\fP の出現順序は、\f2manifest\fP、\f2jarfile\fP、\f2entrypoint\fP の出現順序と一致する必要があります。 
D
duke 已提交
88 89
.TP 3
entrypoint 
90
実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして設定するクラスの名前。\f2\-e\fP オプションと entrypoint は対になっています。どちらかを指定する場合は両方とも指定する必要があります。\f3m\fP、\f3f\fP、および \f3e\fP の出現順序は、\f2manifest\fP、\f2jarfile\fP、\f2entrypoint\fP の出現順序と一致する必要があります。 
D
duke 已提交
91 92
.TP 3
\-C\ dir 
93
これに続く \f2inputfiles\fP 引数を処理する間、ディレクトリを \f2dir\fP へ一時的に変更します。 \f2\-C\ \fP\f2\-\ dir\fP \f2inputfiles\fP のセットは複数使用できます。 
D
duke 已提交
94 95
.TP 3
\-Joption 
96
Java 実行環境へ渡されるオプション。\f2\-J\fP と \f2option\fP の間には空白を入れないでください。 
T
tbell 已提交
97 98 99
.RE

.LP
100
.SH "説明"
T
tbell 已提交
101
.LP
102
\f3jar\fP ツールは複数のファイルを 1 つの JAR アーカイブファイルに結合します。\f3jar\fP は、ZIP および 
T
tbell 已提交
103 104 105
.na
\f2ZLIB\fP @
.fi
106
http://www.gzip.org/zlib/ 圧縮形式に基づく汎用のアーカイブおよび圧縮ツールです。ただし \f3jar\fP ツールの主な目的は、いくつかの Java アプレットやアプリケーションを 1 個のアーカイブに統合することです。アプレットやアプリケーションのコンポーネント (ファイル、イメージ、およびサウンド) が 1 つのアーカイブに結合されていると、Java エージェント (ブラウザなど) は、それらのコンポーネントを 1 回の HTTP トランザクションでダウンロードすることができ、コンポーネントごとに新しい接続を必要とすることがありません。これにより、ダウンロード時間が大幅に短縮されます。また、\f3jar\fP はファイルの圧縮も行うので、ダウンロード時間がさらに短縮されます。また、ファイル内の個々のエントリにアプレット作成者による署名を書き込めるので、配布元の認証が可能になります。jar ツールの構文は、\f2tar\fP コマンドの構文とほぼ同じです。\f3JAR\fP アーカイブは、圧縮されているかどうかにかかわらず、クラスパスのエントリとして使用できます。 
T
tbell 已提交
107
.LP
108
複数のファイルを JAR ファイルへ結合する一般的な使用法は次のとおりです。
T
tbell 已提交
109
.LP
D
duke 已提交
110
.nf
T
tbell 已提交
111 112
\f3
.fl
D
duke 已提交
113
% jar cf myFile.jar *.class
T
tbell 已提交
114 115
.fl
\fP
D
duke 已提交
116
.fi
T
tbell 已提交
117

D
duke 已提交
118
.LP
119
この例では、現在のディレクトリにあるクラス (.class) ファイルがすべて、\f2myFile.jar\fP という名前のファイルに格納されます。jar ツールは自動的に、 \f2META\-INF/MANIFEST.MF\fP という名前のマニフェストファイルエントリを生成します。これは常に、JAR ファイルの最初のエントリになります。マニフェストファイルは、アーカイブに関するメタ情報を宣言し、そのデータを \f2name\ :\ value\fP ペアとして格納します。jar ツールがマニフェストファイル内にメタ情報を格納する方法の詳細については、「
D
duke 已提交
120
.na
T
tbell 已提交
121 122
\f2JAR file specification\fP @
.fi
123
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest」を参照してください。 
D
duke 已提交
124
.LP
125
既存のマニフェストファイル内に格納された \f2name\ :\ value\fP ペアを JAR ファイルに含める必要がある場合には、そのファイルを次のように \f2\-m\fP オプションを使って指定します。
D
duke 已提交
126 127 128 129 130 131 132 133 134 135
.LP
.nf
\f3
.fl
% jar cmf myManifestFile myFile.jar *.class
.fl
\fP
.fi

.LP
136
既存のマニフェストファイルは改行文字で終わっている必要があります。マニフェストファイルが改行文字で終わっていないと、\f3jar\fP はその最終行を解析しません。
D
duke 已提交
137 138 139 140 141 142
.br

.LP
.br

.LP
143
\f3注:\ \fPコマンド行に \f2cmf\fP ではなく \f2cfm\fP が指定された jar コマンド (m と \-f オプションの順番を逆にする) の場合、\f3jar\fP コマンド行にまず JAR アーカイブの名前を指定し、続いてマニフェストファイルの名前を指定する必要があります。 次に例を示します。 
T
tbell 已提交
144 145 146 147 148 149 150 151 152
.nf
\f3
.fl
% jar cfm myFile.jar myManifestFile *.class
.fl
\fP
.fi

.LP
153
マニフェストは、RFC822 ASCII 形式で規定されたテキスト形式であるため、マニフェストファイルの内容を簡単に表示および編集できます。 
D
duke 已提交
154
.LP
155
JAR ファイルからファイルを抽出する場合は、 \f2x\fP を使用します。
D
duke 已提交
156
.LP
T
tbell 已提交
157 158 159
.nf
\f3
.fl
D
duke 已提交
160
% jar xf myFile.jar
T
tbell 已提交
161 162 163 164 165
.fl
\fP
.fi

.LP
D
duke 已提交
166
.LP
167
jar ファイルから個別のファイルを抽出する場合は、そのファイル名を指定します。
D
duke 已提交
168
.LP
T
tbell 已提交
169 170 171
.nf
\f3
.fl
D
duke 已提交
172
% jar xf myFile.jar foo bar
T
tbell 已提交
173 174 175 176 177 178
.fl
\fP
.fi

.LP
.LP
179
JDK のバージョン 1.3 以降から、\f2jar\fP ユーティリティーで 
T
tbell 已提交
180 181 182
.na
\f2JarIndex\fP @
.fi
183
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR_Index がサポートされています。 JarIndex を使用すると、アプリケーションのクラスローダーで JAR ファイルからクラスがロードされるときの効率が向上します。アプリケーションまたはアプレットが複数の JAR ファイルにバンドルされている場合は、クラスがロードされるときに、必要な JAR ファイル以外のダウンロードおよびオープンは行われません。このパフォーマンスの最適化は、新しい \f2\-i\fP オプションを指定して \f2jar\fP を実行すると有効になります。このオプションを使うと、指定した JAR メインファイルと、そのメインファイルが依存しているすべての JAR ファイルについて、パッケージ位置情報が生成されます。メインファイルが依存している JAR ファイルは、JAR メインファイルのマニフェストの \f2Class\-Path\fP 属性に指定しておく必要があります。
D
duke 已提交
184
.LP
T
tbell 已提交
185 186 187
.nf
\f3
.fl
D
duke 已提交
188
% jar i main.jar
T
tbell 已提交
189 190 191 192 193
.fl
\fP
.fi

.LP
D
duke 已提交
194
.LP
195
この例では、 \f2INDEX.LIST\fP ファイルが \f2main.jar\fP の \f2META\-INF\fP ディレクトリ内に挿入されます。
T
tbell 已提交
196 197
.br
.br
198
このファイルに格納されている情報を使用して、アプリケーションのクラスローダーは、効率的にクラスをロードします。インデックスファイルに位置情報を格納する方法の詳細は、「JarIndex 仕様」を参照してください。
D
duke 已提交
199 200
.br
.br
201
ディレクトリをコピーするには、まず \f2dir1\fP 内のファイルを圧縮して \f2stdout\fP に出力し、続いて \f2stdin\fP から抽出して \f2dir2\fP に出力します (\f2\-f\fP オプションはどちらの \f2jar\fP コマンドでも省略)。
T
tbell 已提交
202 203 204 205
.LP
.nf
\f3
.fl
206
% (cd dir1; jar c .)| (cd dir2; jar x)
T
tbell 已提交
207 208 209 210
.fl
\fP
.fi

D
duke 已提交
211
.LP
T
tbell 已提交
212
.LP
213
\f2jar\fP を使用して JAR ファイルや JAR マニフェストファイルを操作するサンプルコマンドを確認したい場合は、後述の「例」を参照してください。また、「
D
duke 已提交
214
.na
T
tbell 已提交
215 216
\f2Java Tutorial\fP @
.fi
217
http://download.oracle.com/javase/tutorial/deployment/jar」の JAR コースも参照してください。
T
tbell 已提交
218
.LP
219
.SH "オプション"
T
tbell 已提交
220 221 222 223
.LP
.RS 3
.TP 3
c 
224
f が指定された場合は \f2jarfile\fP という名前の \f2新しい\fP アーカイブファイルを \f2作成し、\fP f と \f2jarfile\fP が省略された場合は標準出力に情報を出力します。\f2inputfiles\fP で指定されたファイルとディレクトリを、このアーカイブに追加します。 
T
tbell 已提交
225 226
.TP 3
u 
227
f が指定されている場合に、既存ファイル \f2jarfile\fP を \f2更新する目的で、\fP \f2inputfiles\fP に指定されたファイルやディレクトリを追加します。次に例を示します。 
T
tbell 已提交
228 229 230 231 232 233 234
.nf
\f3
.fl
jar uf foo.jar foo.class
.fl
\fP
.fi
235
上のコマンドは、ファイル \f2foo.class\fP を既存の JAR ファイル \f2foo.jar\fP に追加します。次の例に示すように、\f2\-u\fP オプションは、マニフェストエントリも更新できます。 
T
tbell 已提交
236 237 238 239 240 241 242
.nf
\f3
.fl
jar umf manifest foo.jar
.fl
\fP
.fi
243
\f2foo.jar\fP マニフェストをマニフェスト内の \f2name:value\fP ペアで更新します。 
T
tbell 已提交
244 245
.TP 3
x 
246
f が指定された場合は \f2jarfile\fP \f2から\fP 、 \f2f\fP と \f2jarfile\fP が省略された場合は標準入力から、ファイルやディレクトリを抽出します。\f2inputfiles\fP が指定されている場合は、その指定したファイルとディレクトリだけが抽出されます。指定されていなければ、すべてのファイルとディレクトリが抽出されます。抽出されたファイルの日時は、アーカイブ内で設定されたものです。 
T
tbell 已提交
247 248
.TP 3
t 
249
f が指定された場合は \f2jarfile\fP \f2から\fP 、 \f2f\fP と \f2jarfile\fP が省略された場合は標準入力から、目次を表示します。\f2inputfiles\fP が指定されている場合は、その指定したファイルとディレクトリだけが一覧表示されます。指定されていなければ、すべてのファイルとディレクトリが一覧表示されます。 
T
tbell 已提交
250 251
.TP 3
i 
252
指定された \f2jarfile\fP と、それに依存する JAR ファイルについて、インデックス情報を生成します。たとえば、 
T
tbell 已提交
253 254 255 256 257 258 259
.nf
\f3
.fl
jar i foo.jar
.fl
\fP
.fi
D
duke 已提交
260
.LP
261
上のコマンドは、\f2foo.jar\fP 内に \f2INDEX.LIST\fP ファイルを生成します。 このファイルには、\f2foo.jar\fP と、\f2foo.jar\fP の \f2Class\-Path\fP 属性に指定されたすべての JAR ファイルに入っている各パッケージの位置情報が書き込まれています。インデックスの例を参照してください。  
T
tbell 已提交
262 263
.TP 3
f 
264
次の各処理の対象となるファイル \f2jarfile\fP を指定します。作成 (\f2c\fP)、更新 (\f2u\fP)、抽出 (\f2x\fP)、インデックス追加 (\f2i\fP)、または表示 (\f2t\fP)。\f2f\fP オプションとファイル名 \f2jarfile\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。Omitting \f2f\fP と \f2jarfile\fP を省略すると、x や t の場合は \f2標準入力\fPから JAR ファイル名が取得され、c や u の場合は \f2標準出力\fP に JAR ファイルが送信されます。 
T
tbell 已提交
265 266
.TP 3
v 
267
詳細な出力を標準出力に生成します。あとで例を示します。 
T
tbell 已提交
268 269
.TP 3
0 
270
(ゼロ) ZIP による圧縮を使用せずに、保存します。 
T
tbell 已提交
271 272
.TP 3
M 
273
マニフェストファイルエントリを作成しません (c および u の場合)。または、マニフェストファイルエントリが存在する場合にそれを削除します (u の場合)。 
T
tbell 已提交
274 275
.TP 3
m 
276
\f2META\-INF/MANIFEST.MF\fP のファイルで指定したマニフェストファイル \f2manifest\fP の \f2name : value\fP の属性ペアを組み込みます。 \f2jar\fP は、すでに同じ名前で存在しないかぎり、その \f2name:value\fP ペアを追加します。同じ名前で存在する場合、 \f2jar\fP はその値を更新します。 
T
tbell 已提交
277
.LP
278
コマンド行で、\f3m\fP と \f3f\fP の文字は、\f2manifest\fP と \f2jarfile\fP の入力順序と同じ順序で記述する必要があります。たとえば、次のようにして使います。 
T
tbell 已提交
279 280 281 282 283 284 285
.nf
\f3
.fl
jar cmf myManifestFile myFile.jar *.class
.fl
\fP
.fi
286
デフォルトのマニフェストには含まれないマニフェストに、特別な目的の \f2name\ :\ value\fP の属性ペアを追加できます。たとえば、ベンダー情報、バージョン情報、パッケージシーリング、または JAR にバンドルされたアプリケーションを実行するための属性を追加できます。「Java Tutorial」の「
D
duke 已提交
287
.na
T
tbell 已提交
288 289
\f2JAR Files\fP @
.fi
290
http://download.oracle.com/javase/tutorial/deployment/jar/」コースを参照し、  \f4\-m\fP オプションの使用例を確認してください。 
D
duke 已提交
291 292
.TP 3
e 
293
実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして、\f2entrypoint\fP を設定します。このオプションを使用すると、マニフェストファイル内の \f2Main\-Class\fP 属性値が作成または上書きされます。このオプションは、JAR ファイルの作成中または更新中に使用できます。このオプションを使えば、マニフェストファイルを編集または作成することなしに、アプリケーションのエントリポイントを指定できます。
D
duke 已提交
294 295
.br
.br
296
たとえば、次のコマンドでは \f2Main.jar\fP が作成されますが、その際、マニフェスト内の \f2Main\-Class\fP 属性値は \f2Main\fP に設定されます。 
D
duke 已提交
297 298 299 300 301 302 303 304
.nf
\f3
.fl
jar cfe Main.jar Main Main.class
.fl
\fP
.fi
.LP
305
次のコマンドを実行すると java ランタイムから直接このアプリケーションを起動できます。 
D
duke 已提交
306 307 308 309 310 311 312
.nf
\f3
.fl
java \-jar Main.jar
.fl
\fP
.fi
313
あるパッケージ内にエントリポイントのクラス名が含まれている場合、ドット (「.」) 、スラッシュ (「/」) のいずれかの文字をその区切り文字として使用できます。たとえば、 \f2Main.class\fP が \f2foo\fP という名前のパッケージに含まれている場合、エントリポイントは次のようにして指定できます。 
D
duke 已提交
314 315 316 317 318 319 320
.nf
\f3
.fl
jar \-cfe Main.jar foo/Main foo/Main.class
.fl
\fP
.fi
321
または 
D
duke 已提交
322 323 324 325 326 327 328
.nf
\f3
.fl
jar \-cfe Main.jar foo.Main foo/Main.class
.fl
\fP
.fi
329
\f3注:\ \fP \f2\-m\fP オプションと \f2\-e\fP オプションの両方を同時に指定した場合、指定したマニフェストにも \f2Main\-Class\fP 属性が含まれていれば、 \f2Main.class\fP の指定があいまいになってエラーや発生し、JAR の作成処理や更新処理が異常終了します。 
T
tbell 已提交
330 331 332
.LP
.TP 3
\-C \ dir 
333
\f2jar\fP コマンドの実行中に後続の \f2inputfiles\fP 引数を処理するときに、一時的にディレクトリを変更します (cd \f2dir\fP)。この処理は、UNIX の \f2tar\fP ユーティリティーの \f2\-C\fP オプションの機能に類似しています。
T
tbell 已提交
334 335
.br
.br
336
たとえば、次のコマンドは、\f2classes\fP ディレクトリに移動し、そのディレクトリから \f2bar.class\fP を \f2foo.jar\fP に追加します。 
D
duke 已提交
337 338 339 340 341 342 343
.nf
\f3
.fl
jar uf foo.jar \-C classes bar.class
.fl
\fP
.fi
344
次のコマンドでは、\f2classes\fP ディレクトリに移動し、\f2classes\fP ディレクトリ内のすべてのファイルを \f2foo.jar\fP に追加します (jar ファイルには classes ディレクトリを作成しません)。次に元のディレクトリに戻ってから、\f2bin\fP ディレクトリに移動し、\f2xyz.class\fP を \f2foo.jar\fP に追加します。 
D
duke 已提交
345 346 347
.nf
\f3
.fl
348
jar uf foo.jar \-C classes .\-C bin xyz.class
D
duke 已提交
349 350 351
.fl
\fP
.fi
352
\f2classes\fP にファイル \f2bar1\fP と \f2bar2\fP が格納されている場合に、 \f2jar tf foo.jar\fP 使用したときの JAR ファイルの中身を、次に示します。 
D
duke 已提交
353
.nf
T
tbell 已提交
354 355 356 357 358 359
\f3
.fl
META\-INF/
.fl
META\-INF/MANIFEST.MF
.fl
D
duke 已提交
360
bar1
T
tbell 已提交
361
.fl
D
duke 已提交
362
bar2
T
tbell 已提交
363
.fl
D
duke 已提交
364
xyz.class
T
tbell 已提交
365 366
.fl
\fP
D
duke 已提交
367
.fi
T
tbell 已提交
368 369 370
.LP
.TP 3
\-Joption 
371
Java 実行環境に \f2option\fP を渡します。 \f2option\fP には、「Java アプリケーション起動ツール」のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、 \f4\-J\-Xmx48M\fP と指定すると、最大メモリーが 48M バイトに設定されます。\f2\-J\fP を使って背後の実行環境にオプションを渡すことはよく行われています。 
T
tbell 已提交
372 373 374
.RE

.LP
375
.SH "コマンド行引数ファイル"
T
tbell 已提交
376
.LP
377
jar のコマンド行を短くしたり簡潔にしたりするために、jar コマンドに対する引数 (\-J オプションを除く) を含む 1 つ以上の \f2ファイルを\fP 指定することが \f2できます\fP 。これにより、任意の長さの jar コマンドを作成でき、オペレーティングシステムによるコマンド行の制限から解放されます。 
T
tbell 已提交
378
.LP
379
引数ファイルにはオプションとファイル名を含めることができます。ファイル内の各引数は、スペースまたは改行で区切ります。引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。引数ファイルの位置から見た相対パスではありません。ワイルドカード (*) は、通常ならばオペレーティングシステムシェルによってあらゆる文字に解釈されますが、この場合はそのようには解釈されません。引数ファイル内の引数で \f2@\fP 文字を使用して、複数のファイルを再帰的に解釈することはサポートされていません。また、\f2\-J\fP オプションもサポートされていません。このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。
T
tbell 已提交
380 381
.LP
.LP
382
\f2jar\fP を実行するときに、各引数ファイルのパスとファイル名の先頭に \f2@\fP 文字を付けて渡します。 \f2jar\fP は、\f2@\fP 文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。
D
duke 已提交
383 384
.br
.br
385
次の例で、 \f2classes.list\fP には、 \f2find\fP コマンドによって出力されたファイルの名前が格納されます。 
T
tbell 已提交
386 387 388 389 390 391 392 393
.LP
.nf
\f3
.fl
% find \fP\f3.\fP \-name '*.class' \-print > classes.list
.fl
.fi

D
duke 已提交
394 395
.LP
.LP
396
次に、引数ファイル構文を使用して \f2classes.list\fP を jar に渡すことで、 \f2そのリスト\fP に対して \f2jar\fP コマンドを実行できます。
T
tbell 已提交
397 398 399 400
.LP
.nf
\f3
.fl
D
duke 已提交
401
% jar cf my.jar @classes.list
T
tbell 已提交
402 403 404 405
.fl
\fP
.fi

D
duke 已提交
406
.LP
407
引数ファイルはパスを指定できますが、相対パスが記述された引数ファイル内のすべてのファイル名は、渡されたパスに対して相対的ではなく、現在の作業ディレクトリに相対的となります。次はその例です。 
T
tbell 已提交
408 409 410
.nf
\f3
.fl
D
duke 已提交
411
% jar @path1/classes.list
T
tbell 已提交
412 413 414 415 416 417 418 419
.fl
\fP
.fi

.LP
.LP

.LP
420
.SH "例"
T
tbell 已提交
421
.LP
422
特定のディレクトリ内のすべてのファイルをアーカイブに追加する (そのアーカイブがすでに存在する場合は、その内容を上書きする) には、次のようにします。\f2\-v\fP オプションを使用して情報を詳細に列挙するように指定すると、サイズや最新の更新日など、アーカイブ内のファイルについての詳細情報が表示されます。 
D
duke 已提交
423
.nf
T
tbell 已提交
424 425
\f3
.fl
D
duke 已提交
426
% ls
T
tbell 已提交
427
.fl
D
duke 已提交
428
1.au          Animator.class    monkey.jpg
T
tbell 已提交
429
.fl
D
duke 已提交
430
2.au          Wave.class        spacemusic.au
T
tbell 已提交
431
.fl
D
duke 已提交
432
3.au          at_work.gif
T
tbell 已提交
433 434 435
.fl

.fl
D
duke 已提交
436
% jar cvf bundle.jar *
T
tbell 已提交
437
.fl
D
duke 已提交
438
added manifest
T
tbell 已提交
439
.fl
D
duke 已提交
440
adding: 1.au(in = 2324) (out= 67)(deflated 97%)
T
tbell 已提交
441
.fl
D
duke 已提交
442
adding: 2.au(in = 6970) (out= 90)(deflated 98%)
T
tbell 已提交
443
.fl
D
duke 已提交
444
adding: 3.au(in = 11616) (out= 108)(deflated 99%)
T
tbell 已提交
445
.fl
D
duke 已提交
446
adding: Animator.class(in = 2266) (out= 66)(deflated 97%)
T
tbell 已提交
447
.fl
D
duke 已提交
448
adding: Wave.class(in = 3778) (out= 81)(deflated 97%)
T
tbell 已提交
449
.fl
D
duke 已提交
450
adding: at_work.gif(in = 6621) (out= 89)(deflated 98%)
T
tbell 已提交
451
.fl
D
duke 已提交
452
adding: monkey.jpg(in = 7667) (out= 91)(deflated 98%)
T
tbell 已提交
453
.fl
D
duke 已提交
454
adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%)
T
tbell 已提交
455 456
.fl
\fP
D
duke 已提交
457
.fi
T
tbell 已提交
458 459

.LP
460
すでに画像、オーディオファイル、およびクラス用のサブディレクトリに分けている場合は、これらを単一の JAR ファイルに結合できます。 
D
duke 已提交
461
.nf
T
tbell 已提交
462 463 464 465
\f3
.fl
% ls \-F
.fl
D
duke 已提交
466
audio/ classes/ images/
T
tbell 已提交
467
.fl
D
duke 已提交
468

T
tbell 已提交
469
.fl
D
duke 已提交
470
% jar cvf bundle.jar audio classes images
T
tbell 已提交
471
.fl
D
duke 已提交
472
added manifest
T
tbell 已提交
473
.fl
D
duke 已提交
474
adding: audio/(in = 0) (out= 0)(stored 0%)
T
tbell 已提交
475
.fl
D
duke 已提交
476
adding: audio/1.au(in = 2324) (out= 67)(deflated 97%)
T
tbell 已提交
477
.fl
D
duke 已提交
478
adding: audio/2.au(in = 6970) (out= 90)(deflated 98%)
T
tbell 已提交
479
.fl
D
duke 已提交
480
adding: audio/3.au(in = 11616) (out= 108)(deflated 99%)
T
tbell 已提交
481
.fl
D
duke 已提交
482
adding: audio/spacemusic.au(in = 3079) (out= 73)(deflated 97%)
T
tbell 已提交
483
.fl
D
duke 已提交
484
adding: classes/(in = 0) (out= 0)(stored 0%)
T
tbell 已提交
485
.fl
D
duke 已提交
486
adding: classes/Animator.class(in = 2266) (out= 66)(deflated 97%)
T
tbell 已提交
487
.fl
D
duke 已提交
488
adding: classes/Wave.class(in = 3778) (out= 81)(deflated 97%)
T
tbell 已提交
489
.fl
D
duke 已提交
490
adding: images/(in = 0) (out= 0)(stored 0%)
T
tbell 已提交
491
.fl
D
duke 已提交
492
adding: images/monkey.jpg(in = 7667) (out= 91)(deflated 98%)
T
tbell 已提交
493
.fl
D
duke 已提交
494
adding: images/at_work.gif(in = 6621) (out= 89)(deflated 98%)
T
tbell 已提交
495
.fl
D
duke 已提交
496

T
tbell 已提交
497 498 499
.fl
% ls \-F
.fl
D
duke 已提交
500
audio/ bundle.jar classes/ images/
T
tbell 已提交
501 502
.fl
\fP
D
duke 已提交
503
.fi
T
tbell 已提交
504 505

.LP
506
JAR ファイルのエントリ名を表示するには、「\f2t\fP」オプションを使用します。 
D
duke 已提交
507
.nf
T
tbell 已提交
508 509
\f3
.fl
D
duke 已提交
510
% jar tf bundle.jar
T
tbell 已提交
511 512 513 514 515
.fl
META\-INF/
.fl
META\-INF/MANIFEST.MF
.fl
D
duke 已提交
516
audio/1.au
T
tbell 已提交
517
.fl
D
duke 已提交
518
audio/2.au
T
tbell 已提交
519
.fl
D
duke 已提交
520
audio/3.au
T
tbell 已提交
521
.fl
D
duke 已提交
522
audio/spacemusic.au
T
tbell 已提交
523
.fl
D
duke 已提交
524
classes/Animator.class
T
tbell 已提交
525
.fl
D
duke 已提交
526
classes/Wave.class
T
tbell 已提交
527
.fl
D
duke 已提交
528
images/monkey.jpg
T
tbell 已提交
529
.fl
D
duke 已提交
530
images/at_work.gif
T
tbell 已提交
531 532
.fl
\fP
D
duke 已提交
533
.fi
T
tbell 已提交
534 535 536

.LP
.LP
537
クラスロードを高速にするためにインデックスファイルを JAR ファイルに追加するには、「\f2i\fP」オプションを使用します。
D
duke 已提交
538 539
.br
.br
540
例:
D
duke 已提交
541 542 543
.br

.LP
544
たとえば、株取引アプリケーションの内部依存しているクラスを、\f2main.jar\fP、\f2buy.jar\fP、および \f2sell.jar\fP という 3 つの JAR ファイルに分割したとします。
T
tbell 已提交
545 546
.br

D
duke 已提交
547
.LP
T
tbell 已提交
548 549 550
.br

.LP
551
\f2main.jar\fP のマニフェストの \f2Class\-path\fP 属性に次のように指定した場合、 
T
tbell 已提交
552 553 554 555 556 557 558 559
.nf
\f3
.fl
Class\-Path: buy.jar sell.jar
.fl
\fP
.fi

D
duke 已提交
560
.LP
561
\f2\-i\fP オプションを使用すれば、アプリケーションのクラスの 読み込みを高速化できます。 
T
tbell 已提交
562 563 564
.nf
\f3
.fl
D
duke 已提交
565
% jar i main.jar
T
tbell 已提交
566 567 568 569
.fl
\fP
.fi

D
duke 已提交
570
.LP
571 572
\f2INDEX.LIST\fP ファイルが \f2META\-INF\fP ディレクトリに挿入されます。この結果、アプリケーションのクラスローダーによってクラスまたはリソースの検索が行われるときに、適切な jar ファイルがダウンロードされます。 
.SH "関連項目"
D
duke 已提交
573 574
.LP
.LP
T
tbell 已提交
575
.na
576
\f2JAR ファイルの概要\fP @
D
duke 已提交
577 578
.fi
http://java.sun.com/javase/6/docs/technotes/guides/jar/jarGuide.html
579
.LP
D
duke 已提交
580
.LP
T
tbell 已提交
581
.na
582
\f2JAR ファイルの仕様\fP @
D
duke 已提交
583 584
.fi
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html
585
.LP
D
duke 已提交
586 587
.LP
.na
588
\f2JarIndex の仕様\fP @
T
tbell 已提交
589
.fi
590 591
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR_Index
.LP
D
duke 已提交
592 593
.LP
.na
594
\f2JAR チュートリアル\fP @
T
tbell 已提交
595
.fi
596 597 598 599
http://download.oracle.com/javase/tutorial/deployment/jar/index.html
.LP
.LP
pack200(1)
D
duke 已提交
600
.LP
601