pack200コマンド

機械翻訳について

名前

pack200 - Java gzip圧縮プログラムを使用して、Javaアーカイブ(JAR)ファイルを圧縮pack200ファイルに変換

シノプシス

pack200 [-opt... | --option=value] x.pack[.gz] JAR-file

-opt... | --option=value
オプションは任意の順序で指定できます。 コマンド行またはpropertiesファイルに指定された最後のオプションが、それ以前に指定されたすべてのオプションより優先されます。 「pack200コマンドのオプション」を参照してください。
x.pack[.gz]
出力ファイルの名前。
JAR-file
入力ファイルの名前。

説明

pack200コマンドは、Java gzip圧縮プログラムを使用して、JARファイルをpack200圧縮ファイルに変換するJavaアプリケーションです。 このコマンドは、JARファイルをWebデプロイメント用にpack200圧縮ファイルにパッケージ化します。 pack200ファイルは高圧縮のファイルであり、直接デプロイすると帯域幅を節約し、ダウンロード時間を短縮できます。

次の例では、一般的な使用方法を示しますが、ここではmyarchive.pack.gzは、pack200コマンドのデフォルト設定で生成されます。

pack200 myarchive.pack.gz myarchive.jar

注:

このコマンドとpackを混同しないでください。 packコマンドとpack200コマンドは別々の製品です。 JDKに付属するJava SE API仕様との相違が見つかった場合には、仕様を優先してください。

終了ステータス

終了値(正常に完了した場合は0、エラーが発生した場合は0よりも大きい数値)が返されます。

pack200コマンドのオプション

pack200コマンドには、圧縮エンジンの設定や微調整を行うオプションが用意されています。 次の例では、一般的な使用法を示します。ここでmyarchive.pack.gzは、pack200コマンドのデフォルト設定で生成されます。

pack200 myarchive.pack.gz myarchive.jar

-rまたは--repack

JARファイルをパックおよびアンパックすることで、JARファイルを生成します。 生成されたファイルはjarsignerツールの入力ファイルとして使用できます。 次の例では、myarchive.jarファイルをパックおよびアンパックします。

pack200 --repack myarchive-packer.jar myarchive.jar

pack200 --repack myarchive.jar

-gまたは--no-gzip

pack200ファイルを生成します。 このオプションを指定するときは、適切な圧縮ツールを使用する必要があります。また、ターゲット・システムでは、対応する圧縮解除ツールを使用する必要があります。

pack200 --no-gzip myarchive.pack myarchive.jar

--gzip
(デフォルト) パック出力をgzipで事後圧縮します。
-Gまたは--strip-debug
出力からデバッグ属性を削除します。 たとえば、SourceFileLineNumberTableLocalVariableTableLocalVariableTypeTableなどの属性があります。 これらの属性を削除すれば、ダウンロードとインストールのサイズは小さくなる他、デバッガの機能が制限されます。
--keep-file-order
入力ファイル内のファイル順序を保存します。 これがデフォルトの動作となります。
-Oまたは--no-keep-file-order
すべての要素を並べ替えて転送します。 また、パック・ツールはダウンロード・サイズを削減するために、JARディレクトリ名を削除します。 ただし、特定のJARファイルの最適化機能(索引など)が正常に動作しない可能性があります。
-S Nまたは--segment-limit= N

この値は、各アーカイブ・セグメントの予想ターゲット・サイズN (バイト単位)です。 N バイト超を必要とする単一の入力ファイルには、独立したアーカイブ・セグメントが割り当てられます。 これは特殊な例ですが、値が-1の場合、すべての入力ファイルを含む単一の巨大なセグメントが生成されます。一方、値が0の場合、クラスごとにセグメントが1つずつ生成されます。 アーカイブ・セグメントのサイズが大きければ大きいほど断片化は起こりにくく、圧縮率も高くなります。ただし、こうしたセグメントを処理するためには、大量のメモリーが必要になります。

各セグメントのサイズは、セグメント内で転送される入力ファイルのサイズと、このファイルの名前のサイズ、およびその他の転送プロパティによって予測されます。

デフォルトは-1です。これは、パック・ツールが単一のセグメント出力ファイルを作成することを意味します。 非常に大きな出力ファイルが生成される場合には、セグメント化を使用するか、入力ファイルをより小さなJARファイルに分割することをお薦めします。

通常、この制限が課されていない10MバイトのJARパック・ファイルは、元の10%程度のサイズにパックされます。ただし、パック・ツールでより大きなJavaヒープ(セグメントの制限の約10倍)を必要とする場合もあります。

-E valueまたは--effort= value

単一の10進数値を指定した場合、パック・ツールは、指定された圧縮率でアーカイブを圧縮します。 レベル1の場合、圧縮速度は速くても圧縮率はそれほど高くありません。レベル9の場合、圧縮速度は遅くても圧縮率は高くなります。 特殊な値0を指定すると、pack200コマンドは元のJARファイルを圧縮せずに直接コピーします。 JSR 200標準では、すべてのアンパック・ツールはこの特殊な処理をアーカイブ全体のパススルーとして理解する必要があります。

デフォルト値は5です。この場合、標準的な時間で、適度な圧縮が行われます。

-H valueまたは--deflate-hint= value

デフォルト値をオーバーライドし、入力情報を保持します。ただし、転送されるアーカイブのサイズは大きくなります。 指定可能な値は、truefalseまたはkeepです。

valuetrueまたはfalseの場合、packer200コマンドは出力アーカイブ内でそれに応じたデフレーション・ヒントを設定し、アーカイブ要素の個別のデフレーション・ヒントを転送しません。

値がkeepの場合、入力JARで見つかったデフレーション・ヒントが保持されます。 これはデフォルトです。

-m valueまたは--modification-time= value

指定可能な値は、latestおよびkeepです。

値がlatestの場合、パック・ツールは、元のアーカイブで使用可能なすべてのエントリのうちの最終更新時刻か、そのセグメントで使用可能なすべてのエントリの最終更新時刻を特定しようとします。 この単一の値はセグメントの一部として転送され、各セグメントの全エントリに適用されます。 この場合、すべてのインストール・ファイルに単一の日付が設定されるという問題はありますが、アーカイブの転送サイズを少し小さくすることができます。

値がkeepの場合、入力JAR内で見つかった変更時刻が保持されます。 これはデフォルトです。

-P fileまたは--pass-file= file
ファイルを圧縮せず、バイト単位で転送するように指定します。 このオプションを繰返し使用して、複数のファイルを指定できます。 システム・ファイル・セパレータがJARファイル・セパレータのスラッシュ(/)に置き換えられている点を除いて、パス名変換はありません。 ファイル名は、JARファイル内の文字列と完全に一致していなければなりません。 fileがディレクトリ名の場合、そのディレクトリ下のすべてのファイルが渡されます。
-U actionまたは--unknown-attribute= action

デフォルトの動作をオーバーライドします。つまり、不明な属性を含むクラス・ファイルが、指定したactionで渡されます。 actionに指定可能な値は、errorstripまたはpassです。

値がerrorの場合、pack200コマンドの操作全体に失敗し、適切な解説が表示されます。

値がstripの場合、属性が削除されます。 Java仮想マシン(JVM)の必須属性を削除すると、クラス・ローダーで障害が発生する可能性があります。

値がpassの場合、クラス全体が1つのリソースとして転送されます。

-C attribute-name = layoutまたは--class-attribute= attribute-name = layout
(ユーザー定義属性) -D attribute-name = layoutの説明を参照してください。
-F attribute-name = layoutまたは--field-attribute= attribute-name = layout
(ユーザー定義属性) -D attribute-name = layoutの説明を参照してください。
-M attribute-name = layoutまたは--method-attribute= attribute-name = layout
(ユーザー定義属性) -D attribute-name = layoutの説明を参照してください。
-D attribute-name = layoutまたは--code-attribute= attribute-name = layout

(ユーザー定義属性) クラス・エンティティにclass-attributefield-attributemethod-attributecode-attributeなどの属性のレイアウトを指定できます。 attribute-nameには、レイアウトまたはアクションが定義される属性の名前を指定します。 actionに指定可能な値は、some-layout-stringerrorstripまたはpassです。

some-layout-string: レイアウト言語は、JSR 200の仕様で定義されています(例: --class-attribute=SourceFile=RUH)。

値がerrorの場合、pack200の操作に失敗し、解説が表示されます。

値がstripの場合、属性が出力から削除されます。 JVMの必須属性を削除すると、クラス・ローダーで障害が発生する可能性があります。 たとえば、--class-attribute=CompilationID=passを指定すると、パック・ツールで追加のアクションが実行されずに、この属性を含むクラス・ファイルが渡されます。

値がpassの場合、クラス全体が1つのリソースとして転送されます。

-f pack.propertiesまたは--config-file= pack.properties

パック・ツールを初期化するためのJavaプロパティが含まれている構成ファイルをコマンド行に指定できることを示します。

pack200 -f pack.properties myarchive.pack.gz myarchive.jar
more pack.properties
# Generic properties for the packer.
modification.time=latest
deflate.hint=false
keep.file.order=false
# This option will cause the files bearing new attributes to
# be reported as an error rather than passed uncompressed.
unknown.attribute=error
# Change the segment limit to be unlimited.
segment.limit=-1
-vまたは--verbose
最小限のメッセージを出力します。 このオプションを複数指定すると、より詳細なメッセージが作成されます。
-qまたは--quiet
メッセージを表示せずに動作します。
-l filenameまたは--log-file= filename
出力メッセージのログ・ファイルを指定します。
-?-hまたは--help
このコマンドに関するヘルプ情報を出力します。
-Vまたは--version
このコマンドに関するバージョン情報を出力します。
-Joption
指定されたoptionをJava Virtual Machineに渡します。 たとえば、-J-Xms48mと指定すると、スタートアップ・メモリーは48Mバイトに設定されます。