src/linux/doc/man/ja/jar.1

Print this page


   1 ." Copyright (c) 1997, 2011, Oracle and/or its affiliates. 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 ."
  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.
  21 ."
  22 .TH jar 1 "07 May 2011"
  23 
  24 .LP
  25 .SH "名前"
  26 jar \- Java ARchive ツール
  27 .LP
  28 \f3jar\fP は複数のファイルを 1 つの JAR アーカイブファイルに結合します。 
  29 .RS 3
  30 .TP 2
  31 o
  32 形式 
  33 .TP 2
  34 o
  35 説明 
  36 .TP 2
  37 o
  38 オプション 
  39 .TP 2
  40 o
  41 コマンド行引数ファイル 
  42 .TP 2
  43 o
  44 例 
  45 .TP 2
  46 o
  47 関連項目 
  48 .RE
  49 
  50 .LP
  51 .SH "形式"
  52 .LP
  53 .RS 3
  54 .TP 3
  55 JAR ファイルの作成 
  56 \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 
  57 .TP 3
  58 JAR ファイルの更新 
  59 \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 
  60 .TP 3
  61 JAR ファイルの抽出 
  62 \f4jar x\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP 
  63 .TP 3
  64 JAR ファイルの内容の表形式による一覧表示 
  65 \f4jar t\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP 
  66 .TP 3
  67 JAR ファイルへのインデックスの追加 
  68 \f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP 
  69 .RE
  70 
  71 .LP
  72 .LP
  73 説明
  74 .LP
  75 .RS 3
  76 .TP 3
  77 cuxtiv0Mmfe 
  78 \f2jar\fP コマンドを制御するオプション 
  79 .TP 3
  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 の場合)。 
  82 .TP 3
  83 inputfiles 
  84 \f2jarfile\fP に結合されるか (c および u の場合)、\f2jarfile\fP から抽出 (x の場合) または一覧表示 (t の場合) される、空白で区切られたファイルまたはディレクトリ。すべてのディレクトリは再帰的に処理されます。このファイルは、オプション \f20\fP (ゼロ) を使用しないかぎり圧縮されます。 
  85 .TP 3
  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 の出現順序と一致する必要があります。 
  88 .TP 3
  89 entrypoint 
  90 実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして設定するクラスの名前。\f2\-e\fP オプションと entrypoint は対になっています。どちらかを指定する場合は両方とも指定する必要があります。\f3m\fP、\f3f\fP、および \f3e\fP の出現順序は、\f2manifest\fP、\f2jarfile\fP、\f2entrypoint\fP の出現順序と一致する必要があります。 
  91 .TP 3
  92 \-C\ dir 
  93 これに続く \f2inputfiles\fP 引数を処理する間、ディレクトリを \f2dir\fP へ一時的に変更します。 \f2\-C\ \fP\f2\-\ dir\fP \f2inputfiles\fP のセットは複数使用できます。 
  94 .TP 3
  95 \-Joption 
  96 Java 実行環境へ渡されるオプション。\f2\-J\fP と \f2option\fP の間には空白を入れないでください。 
  97 .RE
  98 
  99 .LP
 100 .SH "説明"
 101 .LP
 102 \f3jar\fP ツールは複数のファイルを 1 つの JAR アーカイブファイルに結合します。\f3jar\fP は、ZIP および 
 103 .na
 104 \f2ZLIB\fP @
 105 .fi
 106 http://www.gzip.org/zlib/ 圧縮形式に基づく汎用のアーカイブおよび圧縮ツールです。ただし \f3jar\fP ツールの主な目的は、いくつかの Java アプレットやアプリケーションを 1 個のアーカイブに統合することです。アプレットやアプリケーションのコンポーネント (ファイル、イメージ、およびサウンド) が 1 つのアーカイブに結合されていると、Java エージェント (ブラウザなど) は、それらのコンポーネントを 1 回の HTTP トランザクションでダウンロードすることができ、コンポーネントごとに新しい接続を必要とすることがありません。これにより、ダウンロード時間が大幅に短縮されます。また、\f3jar\fP はファイルの圧縮も行うので、ダウンロード時間がさらに短縮されます。また、ファイル内の個々のエントリにアプレット作成者による署名を書き込めるので、配布元の認証が可能になります。jar ツールの構文は、\f2tar\fP コマンドの構文とほぼ同じです。\f3JAR\fP アーカイブは、圧縮されているかどうかにかかわらず、クラスパスのエントリとして使用できます。 
 107 .LP
 108 複数のファイルを JAR ファイルへ結合する一般的な使用法は次のとおりです。
 109 .LP
 110 .nf
 111 \f3
 112 .fl
 113 % jar cf myFile.jar *.class
 114 .fl
 115 \fP
 116 .fi
 117 
 118 .LP
 119 この例では、現在のディレクトリにあるクラス (.class) ファイルがすべて、\f2myFile.jar\fP という名前のファイルに格納されます。jar ツールは自動的に、 \f2META\-INF/MANIFEST.MF\fP という名前のマニフェストファイルエントリを生成します。これは常に、JAR ファイルの最初のエントリになります。マニフェストファイルは、アーカイブに関するメタ情報を宣言し、そのデータを \f2name\ :\ value\fP ペアとして格納します。jar ツールがマニフェストファイル内にメタ情報を格納する方法の詳細については、「
 120 .na
 121 \f2JAR file specification\fP @
 122 .fi
 123 http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest」を参照してください。 
 124 .LP
 125 既存のマニフェストファイル内に格納された \f2name\ :\ value\fP ペアを JAR ファイルに含める必要がある場合には、そのファイルを次のように \f2\-m\fP オプションを使って指定します。
 126 .LP
 127 .nf
 128 \f3
 129 .fl
 130 % jar cmf myManifestFile myFile.jar *.class
 131 .fl
 132 \fP
 133 .fi
 134 
 135 .LP
 136 既存のマニフェストファイルは改行文字で終わっている必要があります。マニフェストファイルが改行文字で終わっていないと、\f3jar\fP はその最終行を解析しません。
 137 .br
 138 
 139 .LP
 140 .br
 141 
 142 .LP
 143 \f3注:\ \fPコマンド行に \f2cmf\fP ではなく \f2cfm\fP が指定された jar コマンド (m と \-f オプションの順番を逆にする) の場合、\f3jar\fP コマンド行にまず JAR アーカイブの名前を指定し、続いてマニフェストファイルの名前を指定する必要があります。 次に例を示します。 
 144 .nf
 145 \f3
 146 .fl
 147 % jar cfm myFile.jar myManifestFile *.class
 148 .fl
 149 \fP
 150 .fi
 151 
 152 .LP
 153 マニフェストは、RFC822 ASCII 形式で規定されたテキスト形式であるため、マニフェストファイルの内容を簡単に表示および編集できます。 
 154 .LP
 155 JAR ファイルからファイルを抽出する場合は、 \f2x\fP を使用します。
 156 .LP
 157 .nf
 158 \f3
 159 .fl
 160 % jar xf myFile.jar
 161 .fl
 162 \fP
 163 .fi
 164 
 165 .LP
 166 .LP
 167 jar ファイルから個別のファイルを抽出する場合は、そのファイル名を指定します。
 168 .LP
 169 .nf
 170 \f3
 171 .fl
 172 % jar xf myFile.jar foo bar
 173 .fl
 174 \fP
 175 .fi
 176 
 177 .LP
 178 .LP
 179 JDK のバージョン 1.3 以降から、\f2jar\fP ユーティリティーで 
 180 .na
 181 \f2JarIndex\fP @
 182 .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 属性に指定しておく必要があります。
 184 .LP
 185 .nf
 186 \f3
 187 .fl
 188 % jar i main.jar
 189 .fl
 190 \fP
 191 .fi
 192 
 193 .LP
 194 .LP
 195 この例では、 \f2INDEX.LIST\fP ファイルが \f2main.jar\fP の \f2META\-INF\fP ディレクトリ内に挿入されます。
 196 .br
 197 .br
 198 このファイルに格納されている情報を使用して、アプリケーションのクラスローダーは、効率的にクラスをロードします。インデックスファイルに位置情報を格納する方法の詳細は、「JarIndex 仕様」を参照してください。
 199 .br
 200 .br
 201 ディレクトリをコピーするには、まず \f2dir1\fP 内のファイルを圧縮して \f2stdout\fP に出力し、続いて \f2stdin\fP から抽出して \f2dir2\fP に出力します (\f2\-f\fP オプションはどちらの \f2jar\fP コマンドでも省略)。
 202 .LP
 203 .nf
 204 \f3
 205 .fl
 206 % (cd dir1; jar c .)| (cd dir2; jar x)
 207 .fl
 208 \fP
 209 .fi
 210 
 211 .LP
 212 .LP
 213 \f2jar\fP を使用して JAR ファイルや JAR マニフェストファイルを操作するサンプルコマンドを確認したい場合は、後述の「例」を参照してください。また、「
 214 .na
 215 \f2Java Tutorial\fP @




 216 .fi
 217 http://download.oracle.com/javase/tutorial/deployment/jar」の JAR コースも参照してください。
 218 .LP
 219 .SH "オプション"
 220 .LP
 221 .RS 3
 222 .TP 3






 223 c 
 224 f が指定された場合は \f2jarfile\fP という名前の \f2新しい\fP アーカイブファイルを \f2作成し、\fP f と \f2jarfile\fP が省略された場合は標準出力に情報を出力します。\f2inputfiles\fP で指定されたファイルとディレクトリを、このアーカイブに追加します。 
 225 .TP 3












 226 u 
 227 f が指定されている場合に、既存ファイル \f2jarfile\fP を \f2更新する目的で、\fP \f2inputfiles\fP に指定されたファイルやディレクトリを追加します。次に例を示します。 




















 228 .nf
 229 \f3
 230 .fl
 231 jar uf foo.jar foo.class
 232 .fl
 233 \fP
 234 .fi
 235 上のコマンドは、ファイル \f2foo.class\fP を既存の JAR ファイル \f2foo.jar\fP に追加します。次の例に示すように、\f2\-u\fP オプションは、マニフェストエントリも更新できます。 
 236 .nf
 237 \f3
 238 .fl
 239 jar umf manifest foo.jar
 240 .fl
 241 \fP
 242 .fi
 243 \f2foo.jar\fP マニフェストをマニフェスト内の \f2name:value\fP ペアで更新します。 
 244 .TP 3
 245 x 
 246 f が指定された場合は \f2jarfile\fP \f2から\fP 、 \f2f\fP と \f2jarfile\fP が省略された場合は標準入力から、ファイルやディレクトリを抽出します。\f2inputfiles\fP が指定されている場合は、その指定したファイルとディレクトリだけが抽出されます。指定されていなければ、すべてのファイルとディレクトリが抽出されます。抽出されたファイルの日時は、アーカイブ内で設定されたものです。 
 247 .TP 3
 248 t 
 249 f が指定された場合は \f2jarfile\fP \f2から\fP 、 \f2f\fP と \f2jarfile\fP が省略された場合は標準入力から、目次を表示します。\f2inputfiles\fP が指定されている場合は、その指定したファイルとディレクトリだけが一覧表示されます。指定されていなければ、すべてのファイルとディレクトリが一覧表示されます。 
 250 .TP 3
 251 i 
 252 指定された \f2jarfile\fP と、それに依存する JAR ファイルについて、インデックス情報を生成します。たとえば、 









 253 .nf
 254 \f3
 255 .fl
 256 jar i foo.jar
 257 .fl
 258 \fP
 259 .fi
 260 .LP
 261 上のコマンドは、\f2foo.jar\fP 内に \f2INDEX.LIST\fP ファイルを生成します。 このファイルには、\f2foo.jar\fP と、\f2foo.jar\fP の \f2Class\-Path\fP 属性に指定されたすべての JAR ファイルに入っている各パッケージの位置情報が書き込まれています。インデックスの例を参照してください。  
 262 .TP 3






















 263 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 ファイルが送信されます。 
 265 .TP 3





















 266 v 
 267 詳細な出力を標準出力に生成します。あとで例を示します。 
 268 .TP 3


 269 0 
 270 (ゼロ) ZIP による圧縮を使用せずに、保存します。 
 271 .TP 3
 272 M 
 273 マニフェストファイルエントリを作成しません (c および u の場合)。または、マニフェストファイルエントリが存在する場合にそれを削除します (u の場合)。 
 274 .TP 3
 275 m 
 276 \f2META\-INF/MANIFEST.MF\fP のファイルで指定したマニフェストファイル \f2manifest\fP の \f2name : value\fP の属性ペアを組み込みます。 \f2jar\fP は、すでに同じ名前で存在しないかぎり、その \f2name:value\fP ペアを追加します。同じ名前で存在する場合、 \f2jar\fP はその値を更新します。 
 277 .LP
 278 コマンド行で、\f3m\fP と \f3f\fP の文字は、\f2manifest\fP と \f2jarfile\fP の入力順序と同じ順序で記述する必要があります。たとえば、次のようにして使います。 
 279 .nf
 280 \f3
 281 .fl
 282 jar cmf myManifestFile myFile.jar *.class
 283 .fl
 284 \fP
 285 .fi
 286 デフォルトのマニフェストには含まれないマニフェストに、特別な目的の \f2name\ :\ value\fP の属性ペアを追加できます。たとえば、ベンダー情報、バージョン情報、パッケージシーリング、または JAR にバンドルされたアプリケーションを実行するための属性を追加できます。「Java Tutorial」の「
 287 .na
 288 \f2JAR Files\fP @
 289 .fi
 290 http://download.oracle.com/javase/tutorial/deployment/jar/」コースを参照し、  \f4\-m\fP オプションの使用例を確認してください。 
 291 .TP 3
 292 e 
 293 実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして、\f2entrypoint\fP を設定します。このオプションを使用すると、マニフェストファイル内の \f2Main\-Class\fP 属性値が作成または上書きされます。このオプションは、JAR ファイルの作成中または更新中に使用できます。このオプションを使えば、マニフェストファイルを編集または作成することなしに、アプリケーションのエントリポイントを指定できます。
 294 .br
 295 .br
 296 たとえば、次のコマンドでは \f2Main.jar\fP が作成されますが、その際、マニフェスト内の \f2Main\-Class\fP 属性値は \f2Main\fP に設定されます。 
 297 .nf
 298 \f3
 299 .fl
 300 jar cfe Main.jar Main Main.class
 301 .fl
 302 \fP
 303 .fi
 304 .LP
 305 次のコマンドを実行すると java ランタイムから直接このアプリケーションを起動できます。 
 306 .nf
 307 \f3
 308 .fl
 309 java \-jar Main.jar
 310 .fl
 311 \fP
 312 .fi
 313 あるパッケージ内にエントリポイントのクラス名が含まれている場合、ドット (「.」) 、スラッシュ (「/」) のいずれかの文字をその区切り文字として使用できます。たとえば、 \f2Main.class\fP が \f2foo\fP という名前のパッケージに含まれている場合、エントリポイントは次のようにして指定できます。 
 314 .nf
 315 \f3
 316 .fl
 317 jar \-cfe Main.jar foo/Main foo/Main.class
 318 .fl
 319 \fP
 320 .fi
 321 または 
 322 .nf
 323 \f3
 324 .fl
 325 jar \-cfe Main.jar foo.Main foo/Main.class
 326 .fl
 327 \fP
 328 .fi
 329 \f3注:\ \fP \f2\-m\fP オプションと \f2\-e\fP オプションの両方を同時に指定した場合、指定したマニフェストにも \f2Main\-Class\fP 属性が含まれていれば、 \f2Main.class\fP の指定があいまいになってエラーや発生し、JAR の作成処理や更新処理が異常終了します。 
 330 .LP
 331 .TP 3
 332 \-C \ dir 
 333 \f2jar\fP コマンドの実行中に後続の \f2inputfiles\fP 引数を処理するときに、一時的にディレクトリを変更します (cd \f2dir\fP)。この処理は、UNIX の \f2tar\fP ユーティリティーの \f2\-C\fP オプションの機能に類似しています。
 334 .br
 335 .br
 336 たとえば、次のコマンドは、\f2classes\fP ディレクトリに移動し、そのディレクトリから \f2bar.class\fP を \f2foo.jar\fP に追加します。 
 337 .nf
 338 \f3
 339 .fl
 340 jar uf foo.jar \-C classes bar.class
 341 .fl
 342 \fP
 343 .fi
 344 次のコマンドでは、\f2classes\fP ディレクトリに移動し、\f2classes\fP ディレクトリ内のすべてのファイルを \f2foo.jar\fP に追加します (jar ファイルには classes ディレクトリを作成しません)。次に元のディレクトリに戻ってから、\f2bin\fP ディレクトリに移動し、\f2xyz.class\fP を \f2foo.jar\fP に追加します。 
 345 .nf
 346 \f3
 347 .fl
 348 jar uf foo.jar \-C classes .\-C bin xyz.class
 349 .fl
 350 \fP
 351 .fi
 352 \f2classes\fP にファイル \f2bar1\fP と \f2bar2\fP が格納されている場合に、 \f2jar tf foo.jar\fP 使用したときの JAR ファイルの中身を、次に示します。 







 353 .nf
 354 \f3
 355 .fl
 356 META\-INF/
 357 .fl
 358 META\-INF/MANIFEST.MF
 359 .fl
 360 bar1
 361 .fl
 362 bar2
 363 .fl
 364 xyz.class
 365 .fl
 366 \fP
 367 .fi
 368 .LP
 369 .TP 3
 370 \-Joption 
 371 Java 実行環境に \f2option\fP を渡します。 \f2option\fP には、「Java アプリケーション起動ツール」のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、 \f4\-J\-Xmx48M\fP と指定すると、最大メモリーが 48M バイトに設定されます。\f2\-J\fP を使って背後の実行環境にオプションを渡すことはよく行われています。 
 372 .RE
 373 
 374 .LP
 375 .SH "コマンド行引数ファイル"
 376 .LP
 377 jar のコマンド行を短くしたり簡潔にしたりするために、jar コマンドに対する引数 (\-J オプションを除く) を含む 1 つ以上の \f2ファイルを\fP 指定することが \f2できます\fP 。これにより、任意の長さの jar コマンドを作成でき、オペレーティングシステムによるコマンド行の制限から解放されます。 
 378 .LP
 379 引数ファイルにはオプションとファイル名を含めることができます。ファイル内の各引数は、スペースまたは改行で区切ります。引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。引数ファイルの位置から見た相対パスではありません。ワイルドカード (*) は、通常ならばオペレーティングシステムシェルによってあらゆる文字に解釈されますが、この場合はそのようには解釈されません。引数ファイル内の引数で \f2@\fP 文字を使用して、複数のファイルを再帰的に解釈することはサポートされていません。また、\f2\-J\fP オプションもサポートされていません。このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。
 380 .LP
 381 .LP
 382 \f2jar\fP を実行するときに、各引数ファイルのパスとファイル名の先頭に \f2@\fP 文字を付けて渡します。 \f2jar\fP は、\f2@\fP 文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。
 383 .br
 384 .br
 385 次の例で、 \f2classes.list\fP には、 \f2find\fP コマンドによって出力されたファイルの名前が格納されます。 
 386 .LP






























 387 .nf
 388 \f3
 389 .fl
 390 % find \fP\f3.\fP \-name '*.class' \-print > classes.list
 391 .fl
 392 .fi
 393 
 394 .LP
 395 .LP
 396 次に、引数ファイル構文を使用して \f2classes.list\fP を jar に渡すことで、 \f2そのリスト\fP に対して \f2jar\fP コマンドを実行できます。
 397 .LP
 398 .nf
 399 \f3
 400 .fl
 401 % jar cf my.jar @classes.list
 402 .fl
 403 \fP
 404 .fi
 405 
 406 .LP
 407 引数ファイルはパスを指定できますが、相対パスが記述された引数ファイル内のすべてのファイル名は、渡されたパスに対して相対的ではなく、現在の作業ディレクトリに相対的となります。次はその例です。 





 408 .nf
 409 \f3
 410 .fl
 411 % jar @path1/classes.list
 412 .fl
 413 \fP
 414 .fi
 415 
 416 .LP
 417 .LP
 418 
 419 .LP












 420 .SH "例"
 421 .LP
 422 特定のディレクトリ内のすべてのファイルをアーカイブに追加する (そのアーカイブがすでに存在する場合は、その内容を上書きする) には、次のようにします。\f2\-v\fP オプションを使用して情報を詳細に列挙するように指定すると、サイズや最新の更新日など、アーカイブ内のファイルについての詳細情報が表示されます。 





 423 .nf
 424 \f3
 425 .fl
 426 % ls
 427 .fl
 428 1.au          Animator.class    monkey.jpg
 429 .fl
 430 2.au          Wave.class        spacemusic.au
 431 .fl
 432 3.au          at_work.gif
 433 .fl
 434 
 435 .fl
 436 % jar cvf bundle.jar *
 437 .fl
 438 added manifest
 439 .fl
 440 adding: 1.au(in = 2324) (out= 67)(deflated 97%)
 441 .fl
 442 adding: 2.au(in = 6970) (out= 90)(deflated 98%)
 443 .fl
 444 adding: 3.au(in = 11616) (out= 108)(deflated 99%)
 445 .fl
 446 adding: Animator.class(in = 2266) (out= 66)(deflated 97%)
 447 .fl
 448 adding: Wave.class(in = 3778) (out= 81)(deflated 97%)
 449 .fl
 450 adding: at_work.gif(in = 6621) (out= 89)(deflated 98%)
 451 .fl
 452 adding: monkey.jpg(in = 7667) (out= 91)(deflated 98%)
 453 .fl
 454 adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%)
 455 .fl
 456 \fP
 457 .fi
 458 
 459 .LP
 460 すでに画像、オーディオファイル、およびクラス用のサブディレクトリに分けている場合は、これらを単一の JAR ファイルに結合できます。 








 461 .nf
 462 \f3
 463 .fl
 464 % ls \-F
 465 .fl
 466 audio/ classes/ images/
 467 .fl
 468 
 469 .fl
 470 % jar cvf bundle.jar audio classes images
 471 .fl
 472 added manifest
 473 .fl
 474 adding: audio/(in = 0) (out= 0)(stored 0%)
 475 .fl
 476 adding: audio/1.au(in = 2324) (out= 67)(deflated 97%)
 477 .fl
 478 adding: audio/2.au(in = 6970) (out= 90)(deflated 98%)
 479 .fl
 480 adding: audio/3.au(in = 11616) (out= 108)(deflated 99%)
 481 .fl
 482 adding: audio/spacemusic.au(in = 3079) (out= 73)(deflated 97%)
 483 .fl
 484 adding: classes/(in = 0) (out= 0)(stored 0%)
 485 .fl
 486 adding: classes/Animator.class(in = 2266) (out= 66)(deflated 97%)
 487 .fl
 488 adding: classes/Wave.class(in = 3778) (out= 81)(deflated 97%)
 489 .fl
 490 adding: images/(in = 0) (out= 0)(stored 0%)
 491 .fl
 492 adding: images/monkey.jpg(in = 7667) (out= 91)(deflated 98%)
 493 .fl
 494 adding: images/at_work.gif(in = 6621) (out= 89)(deflated 98%)
 495 .fl
 496 
 497 .fl
 498 % ls \-F
 499 .fl
 500 audio/ bundle.jar classes/ images/
 501 .fl
 502 \fP
 503 .fi
 504 
 505 .LP
 506 JAR ファイルのエントリ名を表示するには、「\f2t\fP」オプションを使用します。 


















 507 .nf
 508 \f3
 509 .fl
 510 % jar tf bundle.jar
 511 .fl
 512 META\-INF/
 513 .fl
 514 META\-INF/MANIFEST.MF
 515 .fl
 516 audio/1.au
 517 .fl
 518 audio/2.au
 519 .fl
 520 audio/3.au
 521 .fl
 522 audio/spacemusic.au
 523 .fl
 524 classes/Animator.class
 525 .fl
 526 classes/Wave.class
 527 .fl
 528 images/monkey.jpg
 529 .fl
 530 images/at_work.gif
 531 .fl
 532 \fP
 533 .fi
 534 
 535 .LP
 536 .LP
 537 クラスロードを高速にするためにインデックスファイルを JAR ファイルに追加するには、「\f2i\fP」オプションを使用します。
 538 .br
 539 .br
 540 例:
 541 .br
 542 
 543 .LP
 544 たとえば、株取引アプリケーションの内部依存しているクラスを、\f2main.jar\fP、\f2buy.jar\fP、および \f2sell.jar\fP という 3 つの JAR ファイルに分割したとします。
 545 .br
 546 
 547 .LP
 548 .br
 549 
 550 .LP
 551 \f2main.jar\fP のマニフェストの \f2Class\-path\fP 属性に次のように指定した場合、 
 552 .nf
 553 \f3
 554 .fl
 555 Class\-Path: buy.jar sell.jar
 556 .fl
 557 \fP
 558 .fi
 559 
 560 .LP
 561 \f2\-i\fP オプションを使用すれば、アプリケーションのクラスの 読み込みを高速化できます。 







 562 .nf
 563 \f3
 564 .fl
 565 % jar i main.jar
 566 .fl
 567 \fP
 568 .fi
 569 
 570 .LP
 571 \f2INDEX.LIST\fP ファイルが \f2META\-INF\fP ディレクトリに挿入されます。この結果、アプリケーションのクラスローダーによってクラスまたはリソースの検索が行われるときに、適切な jar ファイルがダウンロードされます。 

 572 .SH "関連項目"
 573 .LP
 574 .LP
 575 .na
 576 \f2JAR ファイルの概要\fP @
 577 .fi
 578 http://java.sun.com/javase/6/docs/technotes/guides/jar/jarGuide.html
 579 .LP
 580 .LP
 581 .na
 582 \f2JAR ファイルの仕様\fP @
 583 .fi
 584 http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html
 585 .LP
 586 .LP
 587 .na
 588 \f2JarIndex の仕様\fP @
 589 .fi
 590 http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR_Index
 591 .LP
 592 .LP
 593 .na
 594 \f2JAR チュートリアル\fP @
 595 .fi
 596 http://download.oracle.com/javase/tutorial/deployment/jar/index.html
 597 .LP
 598 .LP
 599 pack200(1)
 600 .LP
 601  
   1 '\" t
   2 .\" Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   3 .\" Title: jar
   4 .\" Language: English
   5 .\" Date: 2013年11月21日
   6 .\" SectDesc: 基本ツール
   7 .\" Software: JDK 8
   8 .\" Arch: 汎用
   9 .\"
  10 .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  11 .\"
  12 .\" This code is free software; you can redistribute it and/or modify it
  13 .\" under the terms of the GNU General Public License version 2 only, as
  14 .\" published by the Free Software Foundation.
  15 .\"
  16 .\" This code is distributed in the hope that it will be useful, but WITHOUT
  17 .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  18 .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
  19 .\" version 2 for more details (a copy is included in the LICENSE file that
  20 .\" accompanied this code).
  21 .\"
  22 .\" You should have received a copy of the GNU General Public License version
  23 .\" 2 along with this work; if not, write to the Free Software Foundation,
  24 .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  25 .\"
  26 .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  27 .\" or visit www.oracle.com if you need additional information or have any
  28 .\" questions.
  29 .\"
  30 .pl 99999
  31 .TH "jar" "1" "2013年11月21日" "JDK 8" "基本ツール"
  32 .\" -----------------------------------------------------------------
  33 .\" * Define some portability stuff
  34 .\" -----------------------------------------------------------------
  35 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  36 .\" http://bugs.debian.org/507673
  37 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
  38 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  39 .ie \n(.g .ds Aq \(aq
  40 .el       .ds Aq '
  41 .\" -----------------------------------------------------------------
  42 .\" * set default formatting
  43 .\" -----------------------------------------------------------------
  44 .\" disable hyphenation
  45 .nh
  46 .\" disable justification (adjust text to left margin only)
  47 .ad l
  48 .\" -----------------------------------------------------------------
  49 .\" * MAIN CONTENT STARTS HERE *
  50 .\" -----------------------------------------------------------------
  51 .SH "NAME"
  52 jar \- Java Archive (JAR)ファイルを操作します。
  53 .SH "概要"
  54 JARファイルの作成
  55 .sp
  56 .if n \{\
  57 .RS 4
  58 .\}





















































































  59 .nf
  60 \fIjar c\fR[\fIefmMnv0\fR] [\fIentrypoint\fR] [\fIjarfile\fR] [\fImanifest\fR] [\fI\-C\fR \fIdir\fR] \fIfile\fR \&.\&.\&. [\-J\fIoption\fR \&.\&.\&.] [@\fIarg\-file\fR \&.\&.\&.]




  61 .fi
  62 .if n \{\
  63 .RE
  64 .\}
  65 JARファイルの更新
  66 .sp
  67 .if n \{\
  68 .RS 4
  69 .\}
  70 .nf
  71 \fIjar u\fR[\fIefmMnv0\fR] [\fIentrypoint\fR] [\fIjarfile\fR] [\fImanifest\fR] [\fI\-C\fR \fIdir\fR] \fIfile\fR \&.\&.\&. [\-J\fIoption\fR \&.\&.\&.] [@\fIarg\-file\fR \&.\&.\&.]














  72 .fi
  73 .if n \{\
  74 .RE
  75 .\}
  76 JARファイルの抽出
  77 .sp
  78 .if n \{\
  79 .RS 4
  80 .\}
  81 .nf
  82 \fIjar\fR \fIx\fR[\fIvf\fR] [\fIjarfile\fR] \fIfile\fR \&.\&.\&. [\-J\fIoption\fR \&.\&.\&.] [@\fIarg\-file\fR \&.\&.\&.]





  83 .fi
  84 .if n \{\
  85 .RE
  86 .\}
  87 JARファイルのコンテンツのリスト
  88 .sp
  89 .if n \{\
  90 .RS 4
  91 .\}



  92 .nf
  93 \fIjar\fR \fIt\fR[\fIvf\fR] [\fIjarfile\fR] \fIfile\fR \&.\&.\&. [\-J\fIoption\fR \&.\&.\&.] [@\fIarg\-file\fR \&.\&.\&.]




  94 .fi
  95 .if n \{\
  96 .RE
  97 .\}
  98 JARファイルへの索引の追加
  99 .sp
 100 .if n \{\
 101 .RS 4
 102 .\}
 103 .nf
 104 \fIjar\fR \fIi\fR \fIjarfile\fR [\-J\fIoption\fR \&.\&.\&.] [@\fIarg\-file\fR \&.\&.\&.]
 105 .fi
 106 .if n \{\
 107 .RE
 108 .\}
 109 .SH "説明"
 110 .PP
 111 \fIjar\fRコマンドは、ZIPおよびZLIB圧縮形式に基づく汎用のアーカイブおよび圧縮ツールです。ただし、\fIjar\fRコマンドは、主にいくつかのJavaアプレットやアプリケーションを単一のアーカイブにパッケージ化するように設計されました。アプレットやアプリケーションのコンポーネント(ファイル、イメージ、およびサウンド)が1つのアーカイブに結合されていると、Javaエージェント(ブラウザなど)は、それらのコンポーネントを1回のHTTPトランザクションでダウンロードすることができ、コンポーネントごとに新しい接続が不要になります。これにより、ダウンロード時間が大幅に短縮されます。また、\fIjar\fRコマンドはファイルの圧縮も行うため、ダウンロード時間がさらに短縮されます。また、\fIjar\fRコマンドによって、ファイル内の個々のエントリにアプレット作成者による署名を書き込めるため、配布元の認証が可能になります。JARファイルは、圧縮されているかどうかにかかわらず、クラス・パスのエントリとして使用できます。
 112 .PP
 113 \fIjar\fRコマンドの構文は、\fItar\fRコマンドの構文に似ています。必須の\fI操作の引数\fRの1つで定義された複数の操作モードがあります。他の引数は、操作の動作を変更する\fIオプション\fR、または操作を実行するために必要な\fIオペランド\fRを使用します。
 114 .SH "操作の引数"
 115 .PP
 116 \fIjar\fRコマンドを使用する場合は、次の操作の引数のいずれかを指定して実行される操作を選択する必要があります。コマンドラインで他の1文字のオプションと混在させることができますが、通常、操作の引数は指定される最初の引数です。
 117 .PP
 118 c
 119 .RS 4
 120 新しいJARアーカイブを作成します。
 121 .RE
 122 .PP
 123 i
 124 .RS 4
 125 JARアーカイブの索引情報を生成します。
 126 .RE
 127 .PP
 128 t
 129 .RS 4
 130 JARアーカイブのコンテンツをリストします。
 131 .RE
 132 .PP
 133 u
 134 .RS 4
 135 JARアーカイブを更新します。
 136 .RE
 137 .PP
 138 x
 139 .RS 4
 140 JARアーカイブからファイルを抽出します。
 141 .RE
 142 .SH "オプション"
 143 .PP
 144 次のオプションを使用して、JARファイルを作成、更新、抽出または表示する方法をカスタマイズします。
 145 .PP
 146 e
 147 .RS 4
 148 \fIentrypoint\fRオペランドで指定されるクラスを、実行可能JARファイルにバンドルされるスタンドアロンJavaアプリケーションのエントリ・ポイントに設定します。このオプションを使用すると、マニフェスト・ファイル内の\fIMain\-Class\fR属性値が作成またはオーバーライドされます。\fIe\fRオプションは、JARファイルの作成時(\fIc\fR)または更新時(\fIu\fR)に使用できます。
 149 .sp
 150 たとえば、次のコマンドでは、\fIMain\&.jar\fRアーカイブが\fIMain\&.class\fRファイルとともに作成されますが、その際、マニフェスト内の\fIMain\-Class\fR属性値は\fIMain\fRに設定されます。
 151 .sp
 152 .if n \{\
 153 .RS 4
 154 .\}
 155 .nf
 156 jar cfe Main\&.jar Main Main\&.class












 157 .fi
 158 .if n \{\
 159 .RE
 160 .\}
 161 Java Runtime Environment (JRE)は、次のコマンドを実行して、このアプリケーションを直接呼び出すことができます。
 162 .sp
 163 .if n \{\
 164 .RS 4
 165 .\}
 166 .nf
 167 java \-jar Main\&.jar
 168 .fi
 169 .if n \{\
 170 .RE
 171 .\}
 172 あるパッケージ内にエントリ・ポイントのクラス名が含まれている場合、ドット(\&.)またはスラッシュ(/)のいずれかを区切り文字として使用できます。たとえば、\fIMain\&.class\fRが\fImydir\fRという名前のパッケージに含まれている場合、エントリ・ポイントは次のいずれかの方法で指定できます。
 173 .sp
 174 .if n \{\
 175 .RS 4
 176 .\}
 177 .nf
 178 jar \-cfe Main\&.jar mydir/Main mydir/Main\&.class
 179 jar \-cfe Main\&.jar mydir\&.Main mydir/Main\&.class
 180 .fi
 181 .if n \{\
 182 .RE
 183 .\}
 184 .if n \{\
 185 .sp
 186 .\}
 187 .RS 4
 188 .it 1 an-trap
 189 .nr an-no-space-flag 1
 190 .nr an-break-flag 1
 191 .br
 192 .ps +1
 193 \fBNote\fR
 194 .ps -1
 195 .br
 196 .TS
 197 allbox tab(:);
 198 l.
 199 T{
 200 注意
 201 特定のマニフェストにも\fIMain\-Class\fR属性が含まれている場合に\fIm\fRオプションと\fIe\fRオプションの両方を同時に指定すると、\fIMain\-Class\fRの指定があいまいになります。このあいまいさによってエラーが発生し、\fIjar\fRコマンドの作成や更新の操作が終了します。
 202 T}
 203 .TE
 204 .sp 1
 205 .sp .5v
 206 .RE
 207 .RE
 208 .PP
 209 f
 210 .RS 4
 211 \fIjarfile\fRオペランドで指定されたファイルを、作成(\fIc\fR)、更新(\fIu\fR)、抽出(\fIx\fR)または表示(\fIt\fR)されるJARファイルの名前に設定します。\fIf\fRオプションおよび\fIjarfile\fRオペランドを省略すると、\fIjar\fRコマンドに、\fIstdin\fRからのJARファイル名を受け入れるか(\fIx\fRおよび\fIt\fRの場合)、JARファイルを\fIstdout\fRに送信すること(\fIc\fRおよび\fIu\fRの場合)が指示されます。
 212 .RE
 213 .PP
 214 m
 215 .RS 4
 216 (\fIMETA\-INF/MANIFEST\&.MF\fRのアーカイブにある)
 217 \fIjar\fRコマンドのマニフェスト・ファイルの\fImanifest\fRオペランドで指定されたファイルから、属性の名前と値のペアを含めます。\fIjar\fRコマンドは、同じ名前のエントリがすでに存在する場合を除き、属性の名前と値をJARファイルに追加します。同じ名前のエントリがすでに存在する場合、\fIjar\fRコマンドは属性の値を更新します。\fIm\fRオプションは、JARファイルの作成時(\fIc\fR)または更新時(\fIu\fR)に使用できます。
 218 .sp
 219 デフォルトのマニフェスト・ファイルには含まれないマニフェストに、特別な目的の名前\-値の属性ペアを追加できます。たとえば、ベンダー情報、リリース情報、パッケージ・シーリングを指定する属性、またはJARにバンドルされたアプリケーションを実行可能にするための属性を追加できます。\fIm\fRオプションの使用例は、http://docs\&.oracle\&.com/javase/tutorial/deployment/jar/index\&.htmlにある
 220 プログラムのパッケージ化に関する項を参照してください。
 221 .RE
 222 .PP
 223 M
 224 .RS 4
 225 マニフェスト・ファイル・エントリを作成しない(\fIc\fRおよび\fIu\fRの場合)か、またはマニフェスト・ファイル・エントリが存在する場合は削除します(\fIu\fRの場合)。\fIM\fRオプションは、JARファイルの作成時(\fIc\fR)または更新時(\fIu\fR)に使用できます。
 226 .RE
 227 .PP
 228 n
 229 .RS 4
 230 JARファイルの作成(\fIc\fR)時に、このオプションは、コンテンツがpack200(1)コマンドのパックおよびアンパック操作の影響を受けないようにアーカイブを正規化します。この正規化を使用しない場合、署名付きJARの署名は無効になります。
 231 .RE
 232 .PP
 233 v
 234 .RS 4
 235 詳細な出力を標準出力に生成します。例を参照してください。
 236 .RE
 237 .PP
 238 0
 239 .RS 4
 240 (ゼロ) ZIP圧縮を使用しないでJARファイルを作成(\fIc\fR)または更新(\fIu\fR)します。
 241 .RE
 242 .PP
 243 \-C \fIdir\fR
 244 .RS 4
 245 JARファイルの作成(\fIc\fR)または更新(\fIu\fR)時に、このオプションは\fIfile\fRオペランドで指定されたファイルの処理中にディレクトリを一時的に変更します。この操作は、UNIX
 246 \fItar\fRユーティリティの\fI\-C\fRオプションと同様になることを目的としています。たとえば、次のコマンドによって、\fIclasses\fRディレクトリに変更され、そのディレクトリから\fImy\&.jar\fRに\fIBar\&.class\fRファイルが追加されます。
 247 .sp
 248 .if n \{\
 249 .RS 4
 250 .\}















 251 .nf
 252 jar uf my\&.jar \-C classes Bar\&.class
 253 .fi
 254 .if n \{\
 255 .RE
 256 .\}
 257 次のコマンドでは、\fIclasses\fRディレクトリに移動し、classesディレクトリ内のすべてのファイルを\fImy\&.jar\fRに追加します(JARファイルには\fIclasses\fRディレクトリを作成しません)。次に元のディレクトリに戻ってから、\fIbin\fRディレクトリに移動し、\fIXyz\&.class\fRを\fImy\&.jar\fRに追加します。
 258 .sp
 259 .if n \{\
 260 .RS 4
 261 .\}





























 262 .nf
 263 jar uf my\&.jar \-C classes \&. \-C bin Xyz\&.class












 264 .fi
 265 .if n \{\
 266 .RE
 267 .\}
 268 \fIclasses\fRに\fIbar1\fRファイルと\fIbar2\fRファイルが含まれている場合、前述のコマンドを実行した後、JARファイルには次のものが含まれます。
 269 .sp
 270 .if n \{\
 271 .RS 4
 272 .\}
 273 .nf
 274 % \fIjar tf my\&.jar\fR

 275 META\-INF/
 276 META\-INF/MANIFEST\&.MF


 277 bar1

 278 bar2
 279 Xyz\&.class
 280 .fi
 281 .if n \{\






 282 .RE
 283 .\}
 284 .RE
 285 .PP
 286 \-J\fIoption\fR
 287 .RS 4
 288 指定したJVMオプションを、JREがJARファイルを実行する際に使用するように設定します。JVMオプションは、java(1)コマンドのリファレンス・ページで説明されています。たとえば、\fI\-J\-Xms48m\fRと指定すると、スタートアップ・メモリーは48MBに設定されます。
 289 .RE
 290 .SH "オペランド"
 291 .PP
 292 次のオペランドは、\fIjar\fRコマンドで認識されます。
 293 .PP
 294 \fIfile\fR
 295 .RS 4
 296 JARファイルの作成(\fIc\fR)または更新(\fIu\fR)時に、\fIfile\fRオペランドは、アーカイブに追加する必要のあるファイルまたはディレクトリのパスと名前を定義します。JARファイルの抽出(\fIx\fR)またはコンテンツのリスト(\fIt\fR)時に、\fIfile\fRオペランドは抽出またはリストするファイルのパスと名前を定義します。少なくとも1つの有効なファイルまたはディレクトリを指定する必要があります。複数の\fIfile\fRオペランドを空白で区切ります。\fIentrypoint\fR、\fIjarfile\fRまたは\fImanifest\fRオペランドが使用される場合は、その後に\fIfile\fRオペランドを指定する必要があります。
 297 .RE
 298 .PP
 299 \fIentrypoint\fR
 300 .RS 4
 301 JARファイルの作成(\fIc\fR)または更新(\fIu\fR)時に、\fIentrypoint\fRオペランドは、実行可能JARファイルにバンドルされているスタンドアロンJavaアプリケーションのエントリ・ポイントとなるクラスの名前を定義します。\fIe\fRオプションが存在する場合は\fIentrypoint\fRオペランドを指定する必要があります。
 302 .RE
 303 .PP
 304 \fIjarfile\fR
 305 .RS 4
 306 作成(\fIc\fR)、更新(\fIu\fR)、抽出(\fIx\fR)または表示(\fIt\fR)するファイルの名前を定義します。\fIf\fRオプションが存在する場合は\fIjarfile\fRオペランドを指定する必要があります。\fIf\fRオプションおよび\fIjarfile\fRオペランドを省略すると、\fIjar\fRコマンドに、\fIstdin\fRからのJARファイル名を受け入れるか(\fIx\fRおよび\fIt\fRの場合)、JARファイルを\fIstdout\fRに送信すること(\fIc\fRおよび\fIu\fRの場合)が指示されます。
 307 .sp
 308 JARファイルを索引付け(\fIi\fR)する場合は、\fIf\fRオプションを指定しないで\fIjarfile\fRオペランドを指定します。
 309 .RE
 310 .PP
 311 \fImanifest\fR
 312 .RS 4
 313 JARファイルの作成(\fIc\fR)または更新(\fIu\fR)時に、\fImanifest\fRオペランドはJARファイルの\fIMANIFEST\&.MF\fRに含める属性の名前と値を持つ既存のマニフェスト・ファイルを定義します。\fIf\fRオプションが存在する場合は\fImanifest\fRオペランドを指定する必要があります。
 314 .RE
 315 .PP
 316 \fI@arg\-file\fR
 317 .RS 4
 318 \fIjar\fRコマンドを短縮または簡素化するには、別のテキスト・ファイル内の引数を指定し、接頭辞としてアットマーク(@)を付けて\fIjar\fRコマンドに渡すことができます。\fIjar\fRコマンドは、アットマーク文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。
 319 .sp
 320 引数ファイルには、\fIjar\fRコマンドのオプションと引数(引数ファイルをサポートしない起動ツールに渡される\fI\-J\fRオプションを除く)を含めることができます。ファイル内の引数は、空白または改行文字で区切ることができます。引数ファイル内のファイル名は、\fIjar\fRコマンドを実行できる現在のディレクトリに対して相対的であり、引数ファイルの場所に対しては相対的ではありません。通常はオペレーティング・システム・シェルによって展開されるアスタリスク(*)などのワイルドカードは展開されません。
 321 .sp
 322 次の例は、\fIfind\fRコマンドによる現在のディレクトリ出力からのファイル名で\fIclasses\&.list\fRファイルを作成する方法を示します。
 323 .sp
 324 .if n \{\
 325 .RS 4
 326 .\}
 327 .nf
 328 find \&. \-name \*(Aq*\&.class\*(Aq \-print > classes\&.list



 329 .fi
 330 .if n \{\
 331 .RE
 332 .\}
 333 \fIjar\fRコマンドを実行し、\fI@arg\-file\fR構文を使用して\fIclasses\&.list\fRファイルを渡すことができます。
 334 .sp
 335 .if n \{\
 336 .RS 4
 337 .\}
 338 .nf
 339 jar cf my\&.jar @classes\&.list

 340 .fi
 341 .if n \{\
 342 .RE
 343 .\}
 344 引数ファイルはパスを指定できますが、相対パスが記述された引数ファイル内のすべてのファイル名は、渡されたパスに対して相対的ではなく、\fIjar\fRコマンドの現在の作業ディレクトリに相対的となります。たとえば、次のようになります。
 345 .sp
 346 .if n \{\
 347 .RS 4
 348 .\}
 349 .nf
 350 jar @dir/classes\&.list




 351 .fi
 352 .if n \{\
 353 .RE
 354 .\}
 355 .RE
 356 .SH "注意"
 357 .PP
 358 \fIe\fR、\fIf\fRおよび\fIm\fRオプションは、\fIentrypoint\fR、\fIjarfile\fRおよび\fImanifest\fRオペランドと同じ順序でコマンドラインに出現する必要があります。
 359 .sp
 360 .if n \{\
 361 .RS 4
 362 .\}
 363 .nf
 364 jar cmef myManifestFile MyMainClass myFile\&.jar *\&.class
 365 .fi
 366 .if n \{\
 367 .RE
 368 .\}
 369 .SH "例"
 370 .PP
 371 \fBExample 1\fR, 冗長な出力による現在のディレクトリからのすべてのファイルの追加
 372 .RS 4
 373 .sp
 374 .if n \{\
 375 .RS 4
 376 .\}
 377 .nf


 378 % ls
 379 1\&.au          Animator\&.class    monkey\&.jpg
 380 2\&.au          Wave\&.class        spacemusic\&.au
 381 3\&.au          at_work\&.gif




 382 
 383 % jar cvf bundle\&.jar *


 384 added manifest
 385 adding: 1\&.au(in = 2324) (out= 67)(deflated 97%)
 386 adding: 2\&.au(in = 6970) (out= 90)(deflated 98%)
 387 adding: 3\&.au(in = 11616) (out= 108)(deflated 99%)
 388 adding: Animator\&.class(in = 2266) (out= 66)(deflated 97%)
 389 adding: Wave\&.class(in = 3778) (out= 81)(deflated 97%)
 390 adding: at_work\&.gif(in = 6621) (out= 89)(deflated 98%)
 391 adding: monkey\&.jpg(in = 7667) (out= 91)(deflated 98%)
 392 adding: spacemusic\&.au(in = 3079) (out= 73)(deflated 97%)










 393 .fi
 394 .if n \{\
 395 .RE
 396 .\}
 397 .RE
 398 .PP
 399 \fBExample 2\fR, サブディレクトリからのファイルの追加
 400 .RS 4
 401 .sp
 402 .if n \{\
 403 .RS 4
 404 .\}
 405 .nf


 406 % ls \-F

 407 audio/ classes/ images/
 408 % jar cvf bundle\&.jar audio classes images




 409 added manifest

 410 adding: audio/(in = 0) (out= 0)(stored 0%)
 411 adding: audio/1\&.au(in = 2324) (out= 67)(deflated 97%)
 412 adding: audio/2\&.au(in = 6970) (out= 90)(deflated 98%)
 413 adding: audio/3\&.au(in = 11616) (out= 108)(deflated 99%)
 414 adding: audio/spacemusic\&.au(in = 3079) (out= 73)(deflated 97%)





 415 adding: classes/(in = 0) (out= 0)(stored 0%)
 416 adding: classes/Animator\&.class(in = 2266) (out= 66)(deflated 97%)
 417 adding: classes/Wave\&.class(in = 3778) (out= 81)(deflated 97%)



 418 adding: images/(in = 0) (out= 0)(stored 0%)
 419 adding: images/monkey\&.jpg(in = 7667) (out= 91)(deflated 98%)
 420 adding: images/at_work\&.gif(in = 6621) (out= 89)(deflated 98%)



 421 

 422 % ls \-F
 423 audio/ bundle\&.jar classes/ images/



 424 .fi
 425 .if n \{\
 426 .RE
 427 .\}
 428 .RE
 429 .PP
 430 \fBExample 3\fR, JARのコンテンツのリスト
 431 .RS 4
 432 .sp
 433 .if n \{\
 434 .RS 4
 435 .\}
 436 .nf
 437 % jar tf bundle\&.jar
 438 .fi
 439 .if n \{\
 440 .RE
 441 .\}
 442 .sp
 443 .if n \{\
 444 .RS 4
 445 .\}
 446 .nf




 447 META\-INF/
 448 META\-INF/MANIFEST\&.MF
 449 audio/1\&.au
 450 audio/2\&.au
 451 audio/3\&.au
 452 audio/spacemusic\&.au
 453 classes/Animator\&.class
 454 classes/Wave\&.class
 455 images/monkey\&.jpg
 456 images/at_work\&.gif











 457 .fi
 458 .if n \{\
 459 .RE
 460 .\}
 461 .RE
 462 .PP
 463 \fBExample 4\fR, 索引の追加
 464 .RS 4
 465 株式取引のアプリケーションの相互依存クラスを、\fImain\&.jar\fR、\fIbuy\&.jar\fRおよび\fIsell\&.jar\fRの3つのJARファイルに分割する場合、\fIi\fRオプションを使用します。\fImain\&.jar\fRマニフェスト内の\fIClass\-Path\fR属性を指定する場合、\fIi\fRオプションを使用して、アプリケーションのクラス・ロードの速度を向上できます。
 466 .sp
 467 .if n \{\
 468 .RS 4
 469 .\}






 470 .nf
 471 Class\-Path: buy\&.jar sell\&.jar
 472 jar i main\&.jar



 473 .fi
 474 .if n \{\
 475 .RE
 476 .\}
 477 \fIINDEX\&.LIST\fRファイルが\fIMETA\-INF\fRディレクトリに挿入されます。これにより、アプリケーションのクラス・ローダーによってクラスまたはリソースの検索が行われるときに、指定したJARファイルがダウンロードされるようになります。
 478 .sp
 479 アプリケーションのクラス・ローダーは、このファイルに格納されている情報を使用して、効率的にクラスをロードします。ディレクトリをコピーするには、最初に\fIdir1\fR内のファイルを\fIstdout\fRに圧縮してから、\fIstdin\fRから\fIdir2\fRにパイプラインを作成して抽出します(\fI\-f\fRオプションは両方の\fIjar\fRコマンドで省略します)。
 480 .sp
 481 .if n \{\
 482 .RS 4
 483 .\}
 484 .nf
 485 (cd dir1; jar c \&.) | (cd dir2; jar x)




 486 .fi
 487 .if n \{\
 488 .RE
 489 .\}
 490 .RE
 491 .SH "関連項目"
 492 .sp
 493 .RS 4
 494 .ie n \{\
 495 \h'-04'\(bu\h'+03'\c
 496 .\}
 497 .el \{\
 498 .sp -1
 499 .IP \(bu 2.3
 500 .\}
 501 pack200(1)\&.
 502 .RE
 503 .sp
 504 .RS 4
 505 .ie n \{\
 506 \h'-04'\(bu\h'+03'\c
 507 .\}
 508 .el \{\
 509 .sp -1
 510 .IP \(bu 2.3
 511 .\}
 512 http://docs\&.oracle\&.com/javase/tutorial/deployment/jar/index\&.htmlにある
 513 JavaチュートリアルのJARに関する項
 514 .RE
 515 .br
 516 'pl 8.5i
 517 'bp