2
|
1 |
'\" t
|
|
2 |
.\"
|
|
3 |
.\" Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
|
|
4 |
.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
5 |
.\"
|
|
6 |
.\" This code is free software; you can redistribute it and/or modify it
|
|
7 |
.\" under the terms of the GNU General Public License version 2 only, as
|
|
8 |
.\" published by the Free Software Foundation.
|
|
9 |
.\"
|
|
10 |
.\" This code is distributed in the hope that it will be useful, but WITHOUT
|
|
11 |
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
12 |
.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
13 |
.\" version 2 for more details (a copy is included in the LICENSE file that
|
|
14 |
.\" accompanied this code).
|
|
15 |
.\"
|
|
16 |
.\" You should have received a copy of the GNU General Public License version
|
|
17 |
.\" 2 along with this work; if not, write to the Free Software Foundation,
|
|
18 |
.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
19 |
.\"
|
|
20 |
.\" Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
|
|
21 |
.\" CA 95054 USA or visit www.sun.com if you need additional information or
|
|
22 |
.\" have any questions.
|
|
23 |
.\"
|
|
24 |
.\" `
|
|
25 |
.TH jar 1 "2006 年 9 月 4 日" "Java SE 6" "ユーザーコマンド"
|
|
26 |
.SH "名前"
|
|
27 |
jar \- Java アーカイブツール
|
|
28 |
.LP
|
|
29 |
\f3jar\fP は複数のファイルを 1 つの Java Archive (JAR) ファイルに結合します。
|
|
30 |
.\"
|
|
31 |
.\" This document was created by saving an HTML file as text
|
|
32 |
.\" from the JavaSoft web site:
|
|
33 |
.\"
|
|
34 |
.\" http://java.sun.com/j2se/1.5/docs/tooldocs/tools.html
|
|
35 |
.\"
|
|
36 |
.\" and adding appropriate troff macros. Because the JavaSoft web site
|
|
37 |
.\" man pages can change without notice, it may be helpful to diff
|
|
38 |
.\" files to identify changes other than new functionality.
|
|
39 |
.\"
|
|
40 |
.SH "形式"
|
|
41 |
.LP
|
|
42 |
|
|
43 |
.LP
|
|
44 |
.TP 3
|
|
45 |
jar ファイルの作成
|
|
46 |
\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
|
|
47 |
.TP 3
|
|
48 |
jar ファイルの更新
|
|
49 |
\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
|
|
50 |
.TP 3
|
|
51 |
jar ファイルの抽出
|
|
52 |
\f4jar x\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP
|
|
53 |
.TP 3
|
|
54 |
jar ファイルの内容の一覧を作成
|
|
55 |
\f4jar t\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP
|
|
56 |
.TP 3
|
|
57 |
jar ファイルにインデックスを追加
|
|
58 |
\f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP
|
|
59 |
.LP
|
|
60 |
.LP
|
|
61 |
パラメータ
|
|
62 |
.LP
|
|
63 |
.RS 3
|
|
64 |
|
|
65 |
.LP
|
|
66 |
.TP 3
|
|
67 |
cuxtiv0Mmfe
|
|
68 |
.I jar
|
|
69 |
コマンドを制御するオプション。
|
|
70 |
.TP 3
|
|
71 |
jarfile
|
|
72 |
作成 (c)、更新 (u)、抽出 (x)、または閲覧される内容の一覧を作成 (t) する
|
|
73 |
jar ファイルです。
|
|
74 |
.I \-f
|
|
75 |
オプションとファイル名
|
|
76 |
.I jarfile
|
|
77 |
は対になっています。
|
|
78 |
使用する場合は、両方を一緒に使用します。
|
|
79 |
.I f
|
|
80 |
および
|
|
81 |
.I jarfile
|
|
82 |
を省略すると、標準入力から「jar ファイル」が
|
|
83 |
使用されたり (x および t の場合)、標準出力にこの「jar ファイル」が
|
|
84 |
送信されたりします (c および u の場合)。
|
|
85 |
.TP 3
|
|
86 |
|
|
87 |
inputfiles
|
|
88 |
.I jar ファイル
|
|
89 |
に結合 (c および u の場合)、または
|
|
90 |
.I jar ファイル
|
|
91 |
から抽出 (x の場合) または一覧表示 (t の場合) されるファイル
|
|
92 |
またはディレクトリ。空白文字で区切ります。
|
|
93 |
すべてのディレクトリは再帰的に処理されます。
|
|
94 |
オプション 0 (ゼロ) が使用されない場合は、ファイルが圧縮されます。
|
|
95 |
.TP 3
|
|
96 |
manifest
|
|
97 |
jar ファイルの MANIFEST.MF に含めようとする名前:値ペアが含まれている
|
|
98 |
既存の manifest ファイルです。
|
|
99 |
.I \-m
|
|
100 |
オプションと
|
|
101 |
.I manifest
|
|
102 |
のファイル名は対になっています。
|
|
103 |
使用する場合は、両方を一緒に使用します。
|
|
104 |
文字
|
|
105 |
.B m
|
|
106 |
、
|
|
107 |
.B f
|
|
108 |
、および
|
|
109 |
.B e
|
|
110 |
の出現順序は、
|
|
111 |
.I manifest
|
|
112 |
、
|
|
113 |
.I jarfile
|
|
114 |
、および
|
|
115 |
.I entrypoint
|
|
116 |
の出現順序と一致する必要があります。
|
|
117 |
.TP 3
|
|
118 |
|
|
119 |
entrypoint
|
|
120 |
実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして設定するクラスの名前。
|
|
121 |
.I \-e
|
|
122 |
オプションと entrypoint は対になっています。どちらかを指定する場合は両方とも指定する必要があります。文字
|
|
123 |
.I m
|
|
124 |
、
|
|
125 |
.I f
|
|
126 |
、
|
|
127 |
.I e
|
|
128 |
の出現順序は
|
|
129 |
.I manifest
|
|
130 |
、
|
|
131 |
.I jarfile
|
|
132 |
、
|
|
133 |
.I entrypoint
|
|
134 |
の出現順序と一致する必要があります。
|
|
135 |
.TP 3
|
|
136 |
\-C\ dir
|
|
137 |
後続の入力ファイル引数の処理中、
|
|
138 |
ディレクトリを
|
|
139 |
.I dir
|
|
140 |
に一時的に変更します。
|
|
141 |
複数の
|
|
142 |
.I \-C " dir"
|
|
143 |
入力ファイルのセットを使用できます。
|
|
144 |
.TP 3
|
|
145 |
\-Joption
|
|
146 |
Java Runtime Environment に渡されるオプション
|
|
147 |
(
|
|
148 |
.I \-J
|
|
149 |
と
|
|
150 |
.I option
|
|
151 |
の間には空白文字を入れないでください)。
|
|
152 |
.SH "機能説明"
|
|
153 |
.IX "Java archive tool" "" "Java archive tool \(em \fLjar\fP"
|
|
154 |
.IX "jar" "" "\fLjar\fP \(em Java archive tool"
|
|
155 |
.B jar
|
|
156 |
ツールは
|
|
157 |
Java
|
|
158 |
アプリケーションの
|
|
159 |
1
|
|
160 |
つで、複数個のファイルを
|
|
161 |
1
|
|
162 |
個の
|
|
163 |
JAR
|
|
164 |
アーカイブファイルに統合します。また、
|
|
165 |
jar は汎用的なアーカイブ作成用
|
|
166 |
および圧縮用のツールでもあり、圧縮は
|
|
167 |
.SM ZIP
|
|
168 |
または
|
|
169 |
.I ZLIB
|
|
170 |
.fi
|
|
171 |
(http://www.gzip.org/zlib/)
|
|
172 |
形式で行います。
|
|
173 |
ただし
|
|
174 |
.B jar
|
|
175 |
ツールの主な目的は、いくつかの
|
|
176 |
Java
|
|
177 |
アプレットやアプリケーションを
|
|
178 |
1
|
|
179 |
個のアーカイブに統合することです。
|
|
180 |
アプレットやアプリケーションのコンポーネント、たとえば
|
|
181 |
クラスファイル、イメージ、サウンドなどを単一のアーカイブに
|
|
182 |
まとめると、ブラウザのような
|
|
183 |
Java
|
|
184 |
エージェントにダウンロードするときに、一度の
|
|
185 |
HTTP
|
|
186 |
トランザクションで済みます。コンポーネントごとに
|
|
187 |
新たに接続する必要がありません。
|
|
188 |
これによりダウンロード時間が大幅に短縮できます。
|
|
189 |
また
|
|
190 |
.B jar
|
|
191 |
はファイルの圧縮も行うので、ダウンロードがより高速になります。
|
|
192 |
さらに、ファイル中の個々のエントリに対してアプレットの作成者が
|
|
193 |
署名できるので、作成元を明確化できます。
|
|
194 |
.B jar
|
|
195 |
ツールの構文は、
|
|
196 |
.I tar
|
|
197 |
コマンドの構文とほぼ同一です。
|
|
198 |
.B jar
|
|
199 |
アーカイブは、圧縮されているかどうかにかかわらず、
|
|
200 |
クラスパス
|
|
201 |
.fi
|
|
202 |
(http://java.sun.com/javase/6/docs/technotes/tools/solaris/classpath.html)
|
|
203 |
エントリとして使用できます。
|
|
204 |
.LP
|
|
205 |
複数のファイルを jar ファイルに統合する標準的な使い方は次のとおりです。
|
|
206 |
.LP
|
|
207 |
.RS
|
|
208 |
.ft 3
|
|
209 |
.nf
|
|
210 |
% jar cf myFile.jar *.class
|
|
211 |
.fi
|
|
212 |
.ft 1
|
|
213 |
.RE
|
|
214 |
.LP
|
|
215 |
この例では、現在のディレクトリ中のすべてのクラスファイルが
|
|
216 |
.I myFile.jar
|
|
217 |
という名前のファイルに置かれます。
|
|
218 |
jar ツールは自動的に、
|
|
219 |
.I META\-INF/MANIFEST.MF
|
|
220 |
という名前のマニフェストファイルエントリを生成します。これは常に、JAR ファイルの最初のエントリになります。マニフェストファイルは、アーカイブに関するメタ情報を宣言し、そのデータを
|
|
221 |
.I name : value
|
|
222 |
ペアとして格納します。jar ツールがマニフェストファイル内にメタ情報を格納する方法の詳細については、
|
|
223 |
.fi
|
|
224 |
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest
|
|
225 |
の
|
|
226 |
.na
|
|
227 |
「JAR file specification」を参照してください。
|
|
228 |
.LP
|
|
229 |
既存のマニフェストファイル内に格納された
|
|
230 |
.I name : value
|
|
231 |
ペアを JAR ファイルに含める必要がある場合には、そのファイルを次のように \f2\-m\fP オプションを使って指定します。
|
|
232 |
.LP
|
|
233 |
.RS 3
|
|
234 |
|
|
235 |
.LP
|
|
236 |
.nf
|
|
237 |
\f3
|
|
238 |
.fl
|
|
239 |
% jar cmf myManifestFile myFile.jar *.class
|
|
240 |
.fl
|
|
241 |
\fP
|
|
242 |
.fi
|
|
243 |
.RE
|
|
244 |
|
|
245 |
.LP
|
|
246 |
既存のマニフェストファイルは改行文字で終わっている必要があります。\ マニフェストファイルが改行文字で終わっていない場合、\f3jar\fP はその最後の行を解析しません。
|
|
247 |
.br
|
|
248 |
|
|
249 |
.LP
|
|
250 |
.br
|
|
251 |
|
|
252 |
.LP
|
|
253 |
\f3注:\ \fP コマンド行に
|
|
254 |
.I cmf
|
|
255 |
ではなく
|
|
256 |
.I cfm
|
|
257 |
が指定された jar コマンド (m と \-f オプションの順番を逆にする) の場合、\f3jar\fP コマンド行にまず jar アーカイブの名前を指定し、続いてマニフェストファイルの名前を指定する必要があります。次に例を示します。
|
|
258 |
.LP
|
|
259 |
.RS 5
|
|
260 |
.B % jar cfm myFile.jar myManifestFile *.class
|
|
261 |
.RE
|
|
262 |
.LP
|
|
263 |
manifest は RFC822
|
|
264 |
.SM ASCII
|
|
265 |
形式に基づいたテキスト形式を使用するため、manifest ファイルの内容は
|
|
266 |
簡単に表示および処理できます。
|
|
267 |
.LP
|
|
268 |
jar ファイルからファイルを抽出する場合は、
|
|
269 |
.I x
|
|
270 |
を使用します。次に例を示します。
|
|
271 |
.LP
|
|
272 |
.RS 5
|
|
273 |
% jar xf myFile.jar
|
|
274 |
.RE
|
|
275 |
.LP
|
|
276 |
jar ファイルから個別のファイルを抽出する場合は、
|
|
277 |
そのファイル名を指定します。
|
|
278 |
.LP
|
|
279 |
.RS 5
|
|
280 |
% jar xf myFile.jar foo bar
|
|
281 |
.RE
|
|
282 |
.LP
|
|
283 |
JDK のバージョン 1.3 から、jar ユーティリティで
|
|
284 |
.fi
|
|
285 |
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Index
|
|
286 |
の「
|
|
287 |
.I JarIndex
|
|
288 |
」をサポートするようになりました。
|
|
289 |
これにより、
|
|
290 |
アプリケーションのクラスローダは、jar ファイルから
|
|
291 |
クラスをより高速に読み込めるようになりました。
|
|
292 |
アプリケーションまたはアプレットが複数の jar ファイルに
|
|
293 |
バンドルされている場合、必要な jar ファイルだけがダウン
|
|
294 |
ロードされて開かれ、クラスが読み込まれます。
|
|
295 |
このパフォーマンスの最適化は、
|
|
296 |
.I jar
|
|
297 |
を
|
|
298 |
.I \-i
|
|
299 |
オプションを使用して実行すると有効になります。
|
|
300 |
指定した
|
|
301 |
メインの jar ファイルおよびそのファイルが依存している
|
|
302 |
すべての jar ファイルのパッケージ位置情報が生成されます。
|
|
303 |
これらの情報は、メイン jar ファイルの manifest の
|
|
304 |
.I Class-Path
|
|
305 |
属性で
|
|
306 |
指定する必要があります。
|
|
307 |
.LP
|
|
308 |
.RS 5
|
|
309 |
% jar i main.jar
|
|
310 |
.RE
|
|
311 |
.LP
|
|
312 |
この例では、
|
|
313 |
.I INDEX.LIST
|
|
314 |
ファイルが
|
|
315 |
.I main.jar
|
|
316 |
の
|
|
317 |
.I META-INF ディレクトリに追加されます。
|
|
318 |
アプリケーションのクラスローダでは、このファイルに格納された情報を
|
|
319 |
使用して、クラスのロードを高速化します。
|
|
320 |
インデックスファイルに位置情報を格納する方法の詳細は、
|
|
321 |
「JarIndex 仕様」を参照してください。
|
|
322 |
.br
|
|
323 |
.br
|
|
324 |
ディレクトリをコピーするには、まず
|
|
325 |
.I dir1
|
|
326 |
内のファイルを圧縮して標準出力に出力し、続いて標準入力から
|
|
327 |
.I dir2
|
|
328 |
に抽出します (両方の
|
|
329 |
.I jar
|
|
330 |
コマンドから
|
|
331 |
.I \-f
|
|
332 |
オプションを省く)。次に例を示します。
|
|
333 |
.LP
|
|
334 |
.RS 5
|
|
335 |
% (cd dir1; jar c .) | (cd dir2; jar x)
|
|
336 |
.RE
|
|
337 |
.LP
|
|
338 |
.I jar
|
|
339 |
を使って JAR ファイルや JAR ファイルマニフェストを操作するコマンドサンプルを確認するには、「例」を参照してください。また、
|
|
340 |
.fi
|
|
341 |
http://java.sun.com/docs/books/tutorial/jar
|
|
342 |
の
|
|
343 |
.na
|
|
344 |
「Java Tutorial」の JAR コースも参照してください。
|
|
345 |
.SH "オプション"
|
|
346 |
.if t .TP 10
|
|
347 |
.if n .TP 5
|
|
348 |
.B c
|
|
349 |
新規のアーカイブファイルを
|
|
350 |
.I jarfile
|
|
351 |
という名前 (
|
|
352 |
.I f
|
|
353 |
を指定した場合)、または標準出力上に (
|
|
354 |
.I f
|
|
355 |
と
|
|
356 |
.I jarfile
|
|
357 |
を省略した場合) 作成します。
|
|
358 |
アーカイブには入力ファイルで指定したファイルおよびディレクトリが追加されます。
|
|
359 |
.if t .TP 10
|
|
360 |
.if n .TP 5
|
|
361 |
.B u
|
|
362 |
既存の
|
|
363 |
.I jarfile
|
|
364 |
(
|
|
365 |
.I f
|
|
366 |
を指定した場合) を更新します。
|
|
367 |
このとき、この
|
|
368 |
.I jarfile
|
|
369 |
には入力ファイルで指定されたファイルおよびディレクトリが追加されます。以下に例を示します。
|
|
370 |
.LP
|
|
371 |
.RS 5
|
|
372 |
% jar uf foo.jar foo.class
|
|
373 |
.RE
|
|
374 |
.LP
|
|
375 |
この例では、ファイル
|
|
376 |
.I foo.class
|
|
377 |
が既存の jar ファイル
|
|
378 |
.I foo.jar
|
|
379 |
に追加されます。
|
|
380 |
.I u
|
|
381 |
オプションでは、マニフェストのエントリを更新することもできます。以下に例を示します。
|
|
382 |
.LP
|
|
383 |
.RS 5
|
|
384 |
% jar umf manifest foo.jar
|
|
385 |
.RE
|
|
386 |
.LP
|
|
387 |
.I foo.jar
|
|
388 |
マニフェストをマニフェスト内の名前:値ペアで更新します。
|
|
389 |
.if t .TP 10
|
|
390 |
.if n .TP 5
|
|
391 |
.B x
|
|
392 |
ファイルおよびディレクトリを
|
|
393 |
.I jarfile
|
|
394 |
(
|
|
395 |
.I f
|
|
396 |
を指定した場合)、
|
|
397 |
または標準入力 (
|
|
398 |
.I f
|
|
399 |
と
|
|
400 |
.I jarfile
|
|
401 |
を省略した場合) から抽出します。
|
|
402 |
入力ファイルを指定した場合、その入力ファイルで指定されたファイルおよびディレクトリだけが
|
|
403 |
抽出されます。指定しない場合は、すべてのファイルおよびディレクトリが抽出されます。
|
|
404 |
抽出されたファイルの日時は、アーカイブ内で設定されたものです。
|
|
405 |
.if t .TP 10
|
|
406 |
.if n .TP 5
|
|
407 |
.B t
|
|
408 |
.I jarfile
|
|
409 |
(
|
|
410 |
.I f
|
|
411 |
を指定した場合)、または標準入力 (
|
|
412 |
.I f
|
|
413 |
と
|
|
414 |
.I jarfile
|
|
415 |
を省略した場合) から内容をリストします。入力ファイルを指定した場合、
|
|
416 |
その入力ファイルで指定されたファイルおよびディレクトリだけが
|
|
417 |
リストされます。指定しない場合は、すべてのファイルおよびディレクトリがリストされます。
|
|
418 |
.if t .TP 10
|
|
419 |
.if n .TP 5
|
|
420 |
.B i
|
|
421 |
指定された
|
|
422 |
.I jarfile
|
|
423 |
および関連づけられている jar ファイルの
|
|
424 |
インデックス情報を生成します。次に例を示します。
|
|
425 |
.LP
|
|
426 |
.RS 5
|
|
427 |
% jar i foo.jar
|
|
428 |
.RE
|
|
429 |
.LP
|
|
430 |
.I foo.jar
|
|
431 |
に
|
|
432 |
.I INDEX.LIST
|
|
433 |
ファイルが生成されます。
|
|
434 |
このファイルには、
|
|
435 |
.I foo.jar
|
|
436 |
の各パッケージおよび
|
|
437 |
.I foo.jar
|
|
438 |
の
|
|
439 |
.I Class-Path
|
|
440 |
属性に指定されているすべての jar ファイルの
|
|
441 |
位置情報が書き込まれています。
|
|
442 |
インデックスの例を参照してください。
|
|
443 |
.if t .TP 10
|
|
444 |
.if n .TP 5
|
|
445 |
.B f
|
|
446 |
作成 (c)、更新 (u)、抽出 (x)、インデックス作成(i)、
|
|
447 |
または表示 (t) する
|
|
448 |
.I jarfile
|
|
449 |
を指定します。
|
|
450 |
.I \-f
|
|
451 |
オプションと
|
|
452 |
.I jarfile
|
|
453 |
のファイル名は対になっています。
|
|
454 |
使用する場合は、両方を一緒に使用します。
|
|
455 |
.I f
|
|
456 |
と
|
|
457 |
.I jarfile
|
|
458 |
を省略すると、標準入力から jar ファイル名が
|
|
459 |
使用されたり (x および t の場合)、標準出力に jar ファイルが
|
|
460 |
送信されたりします (c および u の場合)。
|
|
461 |
.if t .TP 10
|
|
462 |
.if n .TP 5
|
|
463 |
.B v
|
|
464 |
標準出力に詳細な出力を生成します。次に例を示します。
|
|
465 |
.if t .TP 10
|
|
466 |
.if n .TP 5
|
|
467 |
.B 0
|
|
468 |
ゼロ。ZIP 圧縮を使用せずに格納します。
|
|
469 |
.if t .TP 10
|
|
470 |
.if n .TP 5
|
|
471 |
.B M
|
|
472 |
manifest ファイルエントリを作成しません (c および u の場合)。または
|
|
473 |
すでに存在する manifest ファイルエントリを削除します (u の場合)。
|
|
474 |
.if t .TP 10
|
|
475 |
.if n .TP 5
|
|
476 |
.B m
|
|
477 |
指定したマニフェストファイル
|
|
478 |
.I manifest
|
|
479 |
から
|
|
480 |
名前:値属性をファイル
|
|
481 |
.I META-INF/MANIFEST.MF
|
|
482 |
に取り込みます。
|
|
483 |
すでに同じ名前で存在しない限り、
|
|
484 |
.I jar
|
|
485 |
はその名前:値ペアを追加します。同じ名前で存在する場合は、
|
|
486 |
jar
|
|
487 |
はその値を更新します。
|
|
488 |
.LP
|
|
489 |
コマンド行では、文字
|
|
490 |
.B m
|
|
491 |
と
|
|
492 |
.B f
|
|
493 |
は、
|
|
494 |
.I manifest
|
|
495 |
と
|
|
496 |
.I jarfile
|
|
497 |
が出現するのと
|
|
498 |
同じ順序で使用します。次に例を示します。
|
|
499 |
.LP
|
|
500 |
.RS 5
|
|
501 |
% jar cmf myManifestFile myFile.jar *.class
|
|
502 |
.RE
|
|
503 |
.LP
|
|
504 |
manifest ファイルには、デフォルトのマニフェストに含まれていない、
|
|
505 |
専用の名前:値属性ペアを追加できます。
|
|
506 |
たとえば、
|
|
507 |
ベンダー情報、バージョン情報、パッケージシーリング、
|
|
508 |
または JAR にバンドルされたアプリケーションを実行するための属性を
|
|
509 |
追加できます。
|
|
510 |
.B -m
|
|
511 |
オプションの使用例については、「Java Tutorial」
|
|
512 |
.fi
|
|
513 |
http://java.sun.com/docs/books/tutorial/jar/
|
|
514 |
にある
|
|
515 |
.na
|
|
516 |
「
|
|
517 |
.I JAR Files
|
|
518 |
」コースを参照してください。
|
|
519 |
.TP 3
|
|
520 |
e
|
|
521 |
実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして、
|
|
522 |
.I entrypoint
|
|
523 |
を設定します。このオプションを使用すると、マニフェストファイル内の
|
|
524 |
.I Main\-Class
|
|
525 |
属性値が作成または上書きされます。このオプションは、JAR ファイルの作成中または更新中に使用できます。このオプションを使えば、マニフェストファイルを編集または作成することなしに、アプリケーションのエントリポイントを指定できます。
|
|
526 |
.br
|
|
527 |
.br
|
|
528 |
たとえば、次のコマンドは
|
|
529 |
.I Main.jar
|
|
530 |
を作成しますが、その際、マニフェストファイル内の
|
|
531 |
.I Main\-Class
|
|
532 |
属性値は
|
|
533 |
.I Main
|
|
534 |
に設定されます。
|
|
535 |
.RS 3
|
|
536 |
|
|
537 |
.LP
|
|
538 |
.nf
|
|
539 |
\f3
|
|
540 |
.fl
|
|
541 |
jar cfe Main.jar Main Main.class
|
|
542 |
.fl
|
|
543 |
\fP
|
|
544 |
.fi
|
|
545 |
.RE
|
|
546 |
.LP
|
|
547 |
次のコマンドを実行すると java ランタイムから直接このアプリケーションを起動できます。
|
|
548 |
.RS 3
|
|
549 |
|
|
550 |
.LP
|
|
551 |
.nf
|
|
552 |
\f3
|
|
553 |
.fl
|
|
554 |
java \-jar Main.jar
|
|
555 |
.fl
|
|
556 |
\fP
|
|
557 |
.fi
|
|
558 |
.RE
|
|
559 |
エントリポイントのクラス名が特定のパッケージ内に存在している場合、エントリポイントの区切り文字としてドット (「.」) またはスラッシュ (「/」) を使用できます。たとえば、
|
|
560 |
.I Main.class
|
|
561 |
が
|
|
562 |
.I foo
|
|
563 |
という名前のパッケージ内に存在している場合、次のようにしてエントリポイントを指定できます。
|
|
564 |
.RS 3
|
|
565 |
|
|
566 |
.LP
|
|
567 |
.nf
|
|
568 |
\f3
|
|
569 |
.fl
|
|
570 |
jar \-cfe Main.jar foo/Main foo/Main.class
|
|
571 |
.fl
|
|
572 |
\fP
|
|
573 |
.fi
|
|
574 |
.RE
|
|
575 |
または
|
|
576 |
.RS 3
|
|
577 |
|
|
578 |
.LP
|
|
579 |
.nf
|
|
580 |
\f3
|
|
581 |
.fl
|
|
582 |
jar \-cfe Main.jar foo.Main foo/Main.class
|
|
583 |
.fl
|
|
584 |
\fP
|
|
585 |
.fi
|
|
586 |
.RE
|
|
587 |
\f3注:\ \fP
|
|
588 |
.I \-m
|
|
589 |
オプションと
|
|
590 |
.I \-e
|
|
591 |
オプションの両方を同時に指定する場合、指定されたマニフェストにも
|
|
592 |
.I Main\-Class
|
|
593 |
属性が含まれていると、
|
|
594 |
.I Main.class
|
|
595 |
の指定があいまいになってエラーが発生し、JAR の作成または更新処理が異常終了します。
|
|
596 |
.if t .TP 10
|
|
597 |
.if n .TP 5
|
|
598 |
.B \-C \ dir
|
|
599 |
.B jar
|
|
600 |
コマンドの実行中に一時的にディレクトリを変更します (
|
|
601 |
.I cd " dir"
|
|
602 |
)。
|
|
603 |
このとき、後続の入力ファイル引数が処理されます。
|
|
604 |
この動作は、UNIX の
|
|
605 |
.I tar
|
|
606 |
ユーティリティの
|
|
607 |
.I \-C
|
|
608 |
オプションと
|
|
609 |
同様の動作になります。
|
|
610 |
たとえば、次のコマンドは、
|
|
611 |
.I classes
|
|
612 |
ディレクトリに移動し、そのディレクトリから
|
|
613 |
.I bar.classes
|
|
614 |
を
|
|
615 |
.I foo.jar
|
|
616 |
に追加します。
|
|
617 |
.RS 3
|
|
618 |
|
|
619 |
.LP
|
|
620 |
.nf
|
|
621 |
\f3
|
|
622 |
.fl
|
|
623 |
jar uf foo.jar \-C classes bar.class
|
|
624 |
.fl
|
|
625 |
\fP
|
|
626 |
.fi
|
|
627 |
.RE
|
|
628 |
次のコマンドでは、
|
|
629 |
.I classes
|
|
630 |
ディレクトリに移動し、
|
|
631 |
.I classes
|
|
632 |
ディレクトリ内のすべてのファイルを
|
|
633 |
.I foo.jar
|
|
634 |
に追加します (jar ファイルには classes ディレクトリを作成しません)。
|
|
635 |
次に元のディレクトリに戻ってから、
|
|
636 |
.I bin
|
|
637 |
ディレクトリに移動し、
|
|
638 |
.I xyz.class
|
|
639 |
を
|
|
640 |
.I foo.jar
|
|
641 |
に追加します。
|
|
642 |
.RS 3
|
|
643 |
|
|
644 |
.LP
|
|
645 |
.nf
|
|
646 |
\f3
|
|
647 |
.fl
|
|
648 |
jar uf foo.jar \-C classes . \-C bin xyz.class
|
|
649 |
.fl
|
|
650 |
\fP
|
|
651 |
.fi
|
|
652 |
.RE
|
|
653 |
.I classes
|
|
654 |
にファイル
|
|
655 |
.I bar1
|
|
656 |
および
|
|
657 |
.I bar2
|
|
658 |
がある場合、
|
|
659 |
.I jar tf foo.jar
|
|
660 |
を実行すると、jar ファイルの内容が次のように表示されます。
|
|
661 |
.LP
|
|
662 |
.if t .RS 15
|
|
663 |
.if n .RS 8
|
|
664 |
.ft 3
|
|
665 |
.nf
|
|
666 |
META-INF/
|
|
667 |
META-INF/MANIFEST.MF
|
|
668 |
bar1
|
|
669 |
bar2
|
|
670 |
xyz.class
|
|
671 |
.fi
|
|
672 |
.ft 1
|
|
673 |
.RE
|
|
674 |
.if t .TP 10
|
|
675 |
.if n .TP 5
|
|
676 |
.B \-Joption
|
|
677 |
.I option
|
|
678 |
を Java Runtime Environment に渡します。
|
|
679 |
ここで、
|
|
680 |
.I option
|
|
681 |
は、Java アプリケーション起動プログラムのマニュアルページ
|
|
682 |
.fi
|
|
683 |
(http://java.sun.com/javase/6/docs/technotes/tools/solaris/java.html#options)
|
|
684 |
で説明されているオプションの 1 つです。
|
|
685 |
たとえば
|
|
686 |
.B \-J-Xms48m
|
|
687 |
は、最大メモリを 48M バイトに設定します。
|
|
688 |
.I \-J
|
|
689 |
が基本にする仮想マシンにオプションを渡すことは、共通の規約です。
|
|
690 |
.SH "コマンド行引数ファイル"
|
|
691 |
.B jar
|
|
692 |
コマンド行を短くまたは簡単にするために、
|
|
693 |
.I jar
|
|
694 |
コマンドの引数 (
|
|
695 |
.I \-J
|
|
696 |
オプションを除く) を含むファイルを 1 つ以上指定できます。
|
|
697 |
これにより、任意の長さの
|
|
698 |
.B jar
|
|
699 |
コマンドを作成でき、
|
|
700 |
オペレーティングシステムによるコマンド行の制限を
|
|
701 |
回避できます。
|
|
702 |
.LP
|
|
703 |
引数ファイルには、オプションとファイル名を含めることができます。
|
|
704 |
引数ファイル内の引数は空白文字区切りまたは改行区切りにします。
|
|
705 |
引数ファイル内のファイル名は、引数ファイルの位置に対してではなく、
|
|
706 |
現在のディレクトリに対して相対的に指定します。
|
|
707 |
通常はオペレーティングシステムシェルによって展開されるワイルドカード (*) は
|
|
708 |
展開されません。ファイルを再帰的に解釈するための @ 文字は使用できません。
|
|
709 |
.I \-J
|
|
710 |
オプションは、起動プログラムに渡されるため、サポートされていません。
|
|
711 |
起動プログラムでは引数ファイルを使用できないためです。
|
|
712 |
.LP
|
|
713 |
.I jar
|
|
714 |
の実行時、各引数ファイルのパスおよび名前の先頭に @ 文字を付けて渡します。
|
|
715 |
.I jar
|
|
716 |
で先頭に文字 @ の付いた引数が出現するたびに、
|
|
717 |
そのファイルの内容が引数リストに展開されます。
|
|
718 |
.br
|
|
719 |
.br
|
|
720 |
次の例では、
|
|
721 |
.I find
|
|
722 |
コマンドから出力されたファイル名を
|
|
723 |
.I classes.list
|
|
724 |
内に格納しています。
|
|
725 |
.LP
|
|
726 |
.RS 5
|
|
727 |
% find . -name '*.class' -print > classes.list
|
|
728 |
.RE
|
|
729 |
.LP
|
|
730 |
その後、引数ファイル構文を使って
|
|
731 |
.I jar
|
|
732 |
にリストを渡すと、
|
|
733 |
.I Classes.list
|
|
734 |
で
|
|
735 |
.I jar
|
|
736 |
コマンドを実行できます。
|
|
737 |
.LP
|
|
738 |
.RS 5
|
|
739 |
% jar cf my.jar @classes.list
|
|
740 |
.RE
|
|
741 |
.LP
|
|
742 |
引数ファイルはパスを指定できますが、相対パスが記述された引数ファイル内の
|
|
743 |
すべてのファイル名は、渡されたパスに対して相対的ではなく、
|
|
744 |
現在の作業ディレクトリに相対的となります。次に例を示します。
|
|
745 |
.LP
|
|
746 |
.RS 5
|
|
747 |
% jar @path1/classes.list
|
|
748 |
.RE
|
|
749 |
.SH "使用例"
|
|
750 |
あるディレクトリ中のファイルをすべてアーカイブに追加する例を示します
|
|
751 |
(アーカイブがすでに存在する場合は、内容が上書きされます)。
|
|
752 |
詳細を列挙すると (
|
|
753 |
.I \-v
|
|
754 |
オプションを使用)、
|
|
755 |
サイズや最終更新日など、
|
|
756 |
アーカイブ内のファイルに関して詳しい情報が得られます。
|
|
757 |
.RS
|
|
758 |
\f3
|
|
759 |
.nf
|
|
760 |
% ls
|
|
761 |
1.au Animator.class monkey.jpg
|
|
762 |
2.au Wave.class spacemusic.au
|
|
763 |
3.au at_work.gif
|
|
764 |
.LP
|
|
765 |
% jar cvf bundle.jar *
|
|
766 |
added manifest
|
|
767 |
adding: 1.au(in = 2324) (out= 67)(deflated 97%)
|
|
768 |
adding: 2.au(in = 6970) (out= 90)(deflated 98%)
|
|
769 |
adding: 3.au(in = 11616) (out= 108)(deflated 99%)
|
|
770 |
adding: Animator.class(in = 2266) (out= 66)(deflated 97%)
|
|
771 |
adding: Wave.class(in = 3778) (out= 81)(deflated 97%)
|
|
772 |
adding: at_work.gif(in = 6621) (out= 89)(deflated 98%)
|
|
773 |
adding: monkey.jpg(in = 7667) (out= 91)(deflated 98%)
|
|
774 |
adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%)
|
|
775 |
\f1
|
|
776 |
.fi
|
|
777 |
.RE
|
|
778 |
イメージ、オーディオファイル、およびクラス用のサブディレクトリが
|
|
779 |
すでに存在する場合、単一の
|
|
780 |
.B jar
|
|
781 |
ファイルに結合できます。
|
|
782 |
.RS
|
|
783 |
\f3
|
|
784 |
.nf
|
|
785 |
% ls -F
|
|
786 |
audio/ classes/ images/
|
|
787 |
|
|
788 |
% jar cvf bundle.jar audio classes images
|
|
789 |
added manifest
|
|
790 |
adding: audio/(in = 0) (out= 0)(stored 0%)
|
|
791 |
adding: audio/1.au(in = 2324) (out= 67)(deflated 97%)
|
|
792 |
adding: audio/2.au(in = 6970) (out= 90)(deflated 98%)
|
|
793 |
adding: audio/3.au(in = 11616) (out= 108)(deflated 99%)
|
|
794 |
adding: audio/spacemusic.au(in = 3079) (out= 73)(deflated 97%)
|
|
795 |
adding: classes/(in = 0) (out= 0)(stored 0%)
|
|
796 |
adding: classes/Animator.class(in = 2266) (out= 66)(deflated 97%)
|
|
797 |
adding: classes/Wave.class(in = 3778) (out= 81)(deflated 97%)
|
|
798 |
adding: images/(in = 0) (out= 0)(stored 0%)
|
|
799 |
adding: images/monkey.jpg(in = 7667) (out= 91)(deflated 98%)
|
|
800 |
adding: images/at_work.gif(in = 6621) (out= 89)(deflated 98%)
|
|
801 |
|
|
802 |
% ls -F
|
|
803 |
audio/ bundle.jar classes/ images/
|
|
804 |
.fi
|
|
805 |
\f1
|
|
806 |
.RE
|
|
807 |
次の例では、
|
|
808 |
.I t
|
|
809 |
オプションを指定して、jar ファイル中のエントリ名を表示します。
|
|
810 |
.RS
|
|
811 |
\f3
|
|
812 |
.nf
|
|
813 |
% jar tf bundle.jar
|
|
814 |
META-INF/
|
|
815 |
META-INF/MANIFEST.MF
|
|
816 |
audio/1.au
|
|
817 |
audio/2.au
|
|
818 |
audio/3.au
|
|
819 |
audio/spacemusic.au
|
|
820 |
classes/Animator.class
|
|
821 |
classes/Wave.class
|
|
822 |
images/monkey.jpg
|
|
823 |
images/at_work.gif
|
|
824 |
.fi
|
|
825 |
\f1
|
|
826 |
.RE
|
|
827 |
クラスの読み込みを高速化するために jar ファイルにインデックスファイルを
|
|
828 |
追加する場合は、
|
|
829 |
.I i
|
|
830 |
オプションを使用してください。
|
|
831 |
.br
|
|
832 |
.br
|
|
833 |
例:
|
|
834 |
.br
|
|
835 |
|
|
836 |
.LP
|
|
837 |
.RS 3
|
|
838 |
|
|
839 |
.LP
|
|
840 |
たとえば株取引アプリケーションの内部依存しているクラスを
|
|
841 |
.I main.jar
|
|
842 |
、
|
|
843 |
.I buy.jar
|
|
844 |
、
|
|
845 |
および
|
|
846 |
.I sell.jar
|
|
847 |
という 3 つの jar ファイル
|
|
848 |
に分割したとします。
|
|
849 |
.I main.jar
|
|
850 |
のマニフェストの
|
|
851 |
.I Class-Path
|
|
852 |
属性に次のように指定した場合、
|
|
853 |
.LP
|
|
854 |
.RS 5
|
|
855 |
Class-Path: buy.jar sell.jar
|
|
856 |
.RE
|
|
857 |
.LP
|
|
858 |
.I -i
|
|
859 |
オプションを使用すれば、アプリケーションのクラスの
|
|
860 |
読み込みを高速化できます。
|
|
861 |
.LP
|
|
862 |
.RS 5
|
|
863 |
% jar i main.jar
|
|
864 |
.RE
|
|
865 |
.LP
|
|
866 |
.I INDEX.LIST
|
|
867 |
ファイルが
|
|
868 |
.I META-INF
|
|
869 |
ディレクトリに追加されます。
|
|
870 |
この結果、アプリケーションのクラスローダによってクラスまたは
|
|
871 |
リソースの検索が行われるときに、適切な jar ファイルがダウンロードされます。
|
|
872 |
.SH "関連項目"
|
|
873 |
.LP
|
|
874 |
|
|
875 |
.LP
|
|
876 |
.fi
|
|
877 |
http://java.sun.com/javase/6/docs/technotes/guides/jar/jarGuide.html
|
|
878 |
の
|
|
879 |
.na
|
|
880 |
「
|
|
881 |
.I The Jar Overview
|
|
882 |
」
|
|
883 |
.br
|
|
884 |
|
|
885 |
.LP
|
|
886 |
.fi
|
|
887 |
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html
|
|
888 |
の
|
|
889 |
.na
|
|
890 |
「
|
|
891 |
.I The Jar File Specification
|
|
892 |
」
|
|
893 |
.br
|
|
894 |
|
|
895 |
.LP
|
|
896 |
.fi
|
|
897 |
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Index
|
|
898 |
の
|
|
899 |
.na
|
|
900 |
「
|
|
901 |
.I The JarIndex Spec
|
|
902 |
」
|
|
903 |
.br
|
|
904 |
|
|
905 |
.LP
|
|
906 |
.fi
|
|
907 |
http://java.sun.com/docs/books/tutorial/jar
|
|
908 |
の
|
|
909 |
.na
|
|
910 |
「
|
|
911 |
.I Jar Tutorial
|
|
912 |
」
|
|
913 |
(Java ソフトウェアの Web サイト内)
|
|
914 |
.br
|
|
915 |
|
|
916 |
.LP
|
|
917 |
.fi
|
|
918 |
http://java.sun.com/javase/6/docs/technotes/tools/share/pack200.html
|
|
919 |
の
|
|
920 |
.na
|
|
921 |
「
|
|
922 |
.I pack200 Reference Page
|
|
923 |
」
|
|
924 |
.LP
|
|
925 |
|