Java Platform, Standard Editionツール・リファレンス
目次      

pack200

JARファイルをWeb配備用のpack200圧縮ファイルにパッケージ化します。

形式

pack200 [options] output-file JAR-file

オプションは任意の順序で指定できます。コマンド行またはpropertiesファイルに指定された最後のオプションが、それ以前に指定されたすべてのオプションより優先されます。

options

コマンド行オプション。「オプション」を参照してください。

output-file

出力ファイルの名前。

JAR-file

入力ファイルの名前。

説明

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

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

pack200 myarchive.pack.gz myarchive.jar

オプション

-r
--repack

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

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

次の例では、入力ファイル内のファイル順序を保存します。

-g
--no-gzip

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

pack200 --no-gzip myarchive.pack myarchive.jar
-G
--strip-debug

出力からデバッグ属性を削除します。たとえば、SourceFileLineNumberTableLocalVariableTableLocalVariableTypeTableなどの属性があります。これらの属性を削除すれば、ダウンロードとインストールのサイズは小さくなりますが、デバッガの機能は制限されます。

--keep-file-order

入力ファイル内のファイル順序を保存します。これはデフォルトの動作。

-O
--no-keep-file-order

パック・ツールは、すべての要素を並べ替えて転送します。また、パック・ツールはダウンロード・サイズを削減するために、JARディレクトリ名を削除します。ただし、特定のJARファイルの最適化機能(索引など)が正常に動作しない可能性があります。

-Svalue
--segment-limit=value

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

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

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

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

-Evalue
--effort=value

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

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

-Hvalue
--deflate-hint=value

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

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

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

-mvalue
--modification-time=value

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

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

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

-Pfile
--pass-file=file

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

-Uaction
--unknown-attribute=action

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

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

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

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

-Cattribute-name=layout
--class-attribute=attribute-name=action

次のオプションを参照してください。

-Fattribute-name=layout
--field-attribute=attribute-name=action

次のオプションを参照してください。

-Mattribute-name=layout
--method-attribute=attribute-name=action

次のオプションを参照してください。

-Dattribute-name=layout
--code-attribute=attribute-name=action

これらの4つのオプションでは、クラス・エンティティに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

メッセージを表示せずに動作します。

-lfilename
--log-file=filename

出力メッセージのログ・ファイルを指定します。

-?
-h
--help

このコマンドに関するヘルプ情報を出力します。

-V
--version

このコマンドに関するバージョン情報を出力します。

-Joption

指定されたオプションをJava仮想マシンに渡します。詳細は、java(1)コマンドのリファレンス・ページを参照してください。たとえば、-J-Xms48mと指定すると、スタートアップ・メモリーは48Mバイトに設定されます。

終了ステータス

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

このコマンドとpack(1)を混同しないでください。packコマンドとpack200コマンドは別々の製品です。

JDKに付属するJava SE API仕様との相違が見つかった場合には、仕様を優先してください。

関連項目

目次      

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.