jdk/src/linux/doc/man/ja/jar.1
changeset 23600 d21826f6c789
parent 9566 d7241af95355
child 30373 7b7094f0b833
equal deleted inserted replaced
23599:e1bdea08040e 23600:d21826f6c789
     1 ." Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
     1 '\" t
     2 ." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     2 .\" Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
     3 ."
     3 .\" Title: jar
     4 ." This code is free software; you can redistribute it and/or modify it
     4 .\" Language: English
     5 ." under the terms of the GNU General Public License version 2 only, as
     5 .\" Date: 2013年11月21日
     6 ." published by the Free Software Foundation.
     6 .\" SectDesc: 基本ツール
     7 ."
     7 .\" Software: JDK 8
     8 ." This code is distributed in the hope that it will be useful, but WITHOUT
     8 .\" Arch: 汎用
     9 ." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     9 .\"
    10 ." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    10 .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    11 ." version 2 for more details (a copy is included in the LICENSE file that
    11 .\"
    12 ." accompanied this code).
    12 .\" This code is free software; you can redistribute it and/or modify it
    13 ."
    13 .\" under the terms of the GNU General Public License version 2 only, as
    14 ." You should have received a copy of the GNU General Public License version
    14 .\" published by the Free Software Foundation.
    15 ." 2 along with this work; if not, write to the Free Software Foundation,
    15 .\"
    16 ." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    16 .\" This code is distributed in the hope that it will be useful, but WITHOUT
    17 ."
    17 .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    18 ." Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    18 .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
    19 ." or visit www.oracle.com if you need additional information or have any
    19 .\" version 2 for more details (a copy is included in the LICENSE file that
    20 ." questions.
    20 .\" accompanied this code).
    21 ."
    21 .\"
    22 .TH jar 1 "07 May 2011"
    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
    23 
   382 
    24 .LP
   383 % jar cvf bundle\&.jar *
    25 .SH "名前"
   384 added manifest
    26 jar \- Java ARchive ツール
   385 adding: 1\&.au(in = 2324) (out= 67)(deflated 97%)
    27 .LP
   386 adding: 2\&.au(in = 6970) (out= 90)(deflated 98%)
    28 \f3jar\fP は複数のファイルを 1 つの JAR アーカイブファイルに結合します。 
   387 adding: 3\&.au(in = 11616) (out= 108)(deflated 99%)
    29 .RS 3
   388 adding: Animator\&.class(in = 2266) (out= 66)(deflated 97%)
    30 .TP 2
   389 adding: Wave\&.class(in = 3778) (out= 81)(deflated 97%)
    31 o
   390 adding: at_work\&.gif(in = 6621) (out= 89)(deflated 98%)
    32 形式 
   391 adding: monkey\&.jpg(in = 7667) (out= 91)(deflated 98%)
    33 .TP 2
   392 adding: spacemusic\&.au(in = 3079) (out= 73)(deflated 97%)
    34 o
   393 .fi
    35 説明 
   394 .if n \{\
    36 .TP 2
   395 .RE
    37 o
   396 .\}
    38 オプション 
   397 .RE
    39 .TP 2
   398 .PP
    40 o
   399 \fBExample 2\fR, サブディレクトリからのファイルの追加
    41 コマンド行引数ファイル 
   400 .RS 4
    42 .TP 2
   401 .sp
    43 o
   402 .if n \{\
    44
   403 .RS 4
    45 .TP 2
   404 .\}
    46 o
   405 .nf
    47 関連項目 
   406 % ls \-F
    48 .RE
   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%)
    49 
   421 
    50 .LP
   422 % ls \-F
    51 .SH "形式"
   423 audio/ bundle\&.jar classes/ images/
    52 .LP
   424 .fi
    53 .RS 3
   425 .if n \{\
    54 .TP 3
   426 .RE
    55 JAR ファイルの作成 
   427 .\}
    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 
   428 .RE
    57 .TP 3
   429 .PP
    58 JAR ファイルの更新 
   430 \fBExample 3\fR, 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 
   431 .RS 4
    60 .TP 3
   432 .sp
    61 JAR ファイルの抽出 
   433 .if n \{\
    62 \f4jar x\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP 
   434 .RS 4
    63 .TP 3
   435 .\}
    64 JAR ファイルの内容の表形式による一覧表示 
   436 .nf
    65 \f4jar t\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP 
   437 % jar tf bundle\&.jar
    66 .TP 3
   438 .fi
    67 JAR ファイルへのインデックスの追加 
   439 .if n \{\
    68 \f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP 
   440 .RE
    69 .RE
   441 .\}
    70 
   442 .sp
    71 .LP
   443 .if n \{\
    72 .LP
   444 .RS 4
    73 説明
   445 .\}
    74 .LP
   446 .nf
    75 .RS 3
   447 META\-INF/
    76 .TP 3
   448 META\-INF/MANIFEST\&.MF
    77 cuxtiv0Mmfe 
   449 audio/1\&.au
    78 \f2jar\fP コマンドを制御するオプション 
   450 audio/2\&.au
    79 .TP 3
   451 audio/3\&.au
    80 jarfile 
   452 audio/spacemusic\&.au
    81 作成 (\f2c\fP)、更新 (\f2u\fP)、抽出 (\f2x\fP)、または目次表示 (\f2t\fP) の対象となる JAR ファイル。\f2f\fP オプションとファイル名 \f2jarfile\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。 \f2f\fP と \f2jarfile\fP を省略すると、標準入力から「JAR ファイル」が取得されるか (x および t の場合)、標準出力へ「JAR ファイル」が送信されます(c および u の場合)。 
   453 classes/Animator\&.class
    82 .TP 3
   454 classes/Wave\&.class
    83 inputfiles 
   455 images/monkey\&.jpg
    84 \f2jarfile\fP に結合されるか (c および u の場合)、\f2jarfile\fP から抽出 (x の場合) または一覧表示 (t の場合) される、空白で区切られたファイルまたはディレクトリ。すべてのディレクトリは再帰的に処理されます。このファイルは、オプション \f20\fP (ゼロ) を使用しないかぎり圧縮されます。 
   456 images/at_work\&.gif
    85 .TP 3
   457 .fi
    86 manifest 
   458 .if n \{\
    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 の出現順序と一致する必要があります。 
   459 .RE
    88 .TP 3
   460 .\}
    89 entrypoint 
   461 .RE
    90 実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして設定するクラスの名前。\f2\-e\fP オプションと entrypoint は対になっています。どちらかを指定する場合は両方とも指定する必要があります。\f3m\fP、\f3f\fP、および \f3e\fP の出現順序は、\f2manifest\fP、\f2jarfile\fP、\f2entrypoint\fP の出現順序と一致する必要があります。 
   462 .PP
    91 .TP 3
   463 \fBExample 4\fR, 索引の追加
    92 \-C\ dir 
   464 .RS 4
    93 これに続く \f2inputfiles\fP 引数を処理する間、ディレクトリを \f2dir\fP へ一時的に変更します。 \f2\-C\ \fP\f2\-\ dir\fP \f2inputfiles\fP のセットは複数使用できます。 
   465 株式取引のアプリケーションの相互依存クラスを、\fImain\&.jar\fR、\fIbuy\&.jar\fRおよび\fIsell\&.jar\fRの3つのJARファイルに分割する場合、\fIi\fRオプションを使用します。\fImain\&.jar\fRマニフェスト内の\fIClass\-Path\fR属性を指定する場合、\fIi\fRオプションを使用して、アプリケーションのクラス・ロードの速度を向上できます。
    94 .TP 3
   466 .sp
    95 \-Joption 
   467 .if n \{\
    96 Java 実行環境へ渡されるオプション。\f2\-J\fP と \f2option\fP の間には空白を入れないでください。 
   468 .RS 4
    97 .RE
   469 .\}
    98 
   470 .nf
    99 .LP
   471 Class\-Path: buy\&.jar sell\&.jar
   100 .SH "説明"
   472 jar i main\&.jar
   101 .LP
   473 .fi
   102 \f3jar\fP ツールは複数のファイルを 1 つの JAR アーカイブファイルに結合します。\f3jar\fP は、ZIP および 
   474 .if n \{\
   103 .na
   475 .RE
   104 \f2ZLIB\fP @
   476 .\}
   105 .fi
   477 \fIINDEX\&.LIST\fRファイルが\fIMETA\-INF\fRディレクトリに挿入されます。これにより、アプリケーションのクラス・ローダーによってクラスまたはリソースの検索が行われるときに、指定したJARファイルがダウンロードされるようになります。
   106 http://www.gzip.org/zlib/ 圧縮形式に基づく汎用のアーカイブおよび圧縮ツールです。ただし \f3jar\fP ツールの主な目的は、いくつかの Java アプレットやアプリケーションを 1 個のアーカイブに統合することです。アプレットやアプリケーションのコンポーネント (ファイル、イメージ、およびサウンド) が 1 つのアーカイブに結合されていると、Java エージェント (ブラウザなど) は、それらのコンポーネントを 1 回の HTTP トランザクションでダウンロードすることができ、コンポーネントごとに新しい接続を必要とすることがありません。これにより、ダウンロード時間が大幅に短縮されます。また、\f3jar\fP はファイルの圧縮も行うので、ダウンロード時間がさらに短縮されます。また、ファイル内の個々のエントリにアプレット作成者による署名を書き込めるので、配布元の認証が可能になります。jar ツールの構文は、\f2tar\fP コマンドの構文とほぼ同じです。\f3JAR\fP アーカイブは、圧縮されているかどうかにかかわらず、クラスパスのエントリとして使用できます。 
   478 .sp
   107 .LP
   479 アプリケーションのクラス・ローダーは、このファイルに格納されている情報を使用して、効率的にクラスをロードします。ディレクトリをコピーするには、最初に\fIdir1\fR内のファイルを\fIstdout\fRに圧縮してから、\fIstdin\fRから\fIdir2\fRにパイプラインを作成して抽出します(\fI\-f\fRオプションは両方の\fIjar\fRコマンドで省略します)。
   108 複数のファイルを JAR ファイルへ結合する一般的な使用法は次のとおりです。
   480 .sp
   109 .LP
   481 .if n \{\
   110 .nf
   482 .RS 4
   111 \f3
   483 .\}
   112 .fl
   484 .nf
   113 % jar cf myFile.jar *.class
   485 (cd dir1; jar c \&.) | (cd dir2; jar x)
   114 .fl
   486 .fi
   115 \fP
   487 .if n \{\
   116 .fi
   488 .RE
   117 
   489 .\}
   118 .LP
   490 .RE
   119 この例では、現在のディレクトリにあるクラス (.class) ファイルがすべて、\f2myFile.jar\fP という名前のファイルに格納されます。jar ツールは自動的に、 \f2META\-INF/MANIFEST.MF\fP という名前のマニフェストファイルエントリを生成します。これは常に、JAR ファイルの最初のエントリになります。マニフェストファイルは、アーカイブに関するメタ情報を宣言し、そのデータを \f2name\ :\ value\fP ペアとして格納します。jar ツールがマニフェストファイル内にメタ情報を格納する方法の詳細については、「
   491 .SH "関連項目"
   120 .na
   492 .sp
   121 \f2JAR file specification\fP @
   493 .RS 4
   122 .fi
   494 .ie n \{\
   123 http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest」を参照してください。 
   495 \h'-04'\(bu\h'+03'\c
   124 .LP
   496 .\}
   125 既存のマニフェストファイル内に格納された \f2name\ :\ value\fP ペアを JAR ファイルに含める必要がある場合には、そのファイルを次のように \f2\-m\fP オプションを使って指定します。
   497 .el \{\
   126 .LP
   498 .sp -1
   127 .nf
   499 .IP \(bu 2.3
   128 \f3
   500 .\}
   129 .fl
   501 pack200(1)\&.
   130 % jar cmf myManifestFile myFile.jar *.class
   502 .RE
   131 .fl
   503 .sp
   132 \fP
   504 .RS 4
   133 .fi
   505 .ie n \{\
   134 
   506 \h'-04'\(bu\h'+03'\c
   135 .LP
   507 .\}
   136 既存のマニフェストファイルは改行文字で終わっている必要があります。マニフェストファイルが改行文字で終わっていないと、\f3jar\fP はその最終行を解析しません。
   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
   137 .br
   515 .br
   138 
   516 'pl 8.5i
   139 .LP
   517 'bp
   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