pack200
コマンドは、Java gzip圧縮プログラムを使用して、Java Archive (JAR)ファイルをpack200圧縮ファイルに変換する場合に使用します。
形式
pack200 [-opt... | --option=value] x.pack[.gz] JAR-file
-opt... | --option=value
オプションは任意の順序で指定できます。コマンド行またはpropertiesファイルに指定された最後のオプションが、それ以前に指定されたすべてのオプションより優先されます。「pack200コマンドのオプション」を参照してください。
x.pack[.gz]
出力ファイルの名前。
file.jar
入力ファイルの名前。
説明
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
出力からデバッグ属性を削除します。たとえば、SourceFile
、LineNumberTable
、LocalVariableTable
、LocalVariableTypeTable
などの属性があります。これらの属性を削除すれば、ダウンロードとインストールのサイズは小さくなる他、デバッガの機能が制限されます。
--keep-file-order
入力ファイル内のファイル順序を保存します。これはデフォルトの動作です。
-O
または--no-keep-file-order
すべての要素を並べ替えて転送します。また、パック・ツールはダウンロード・サイズを削減するために、JARディレクトリ名を削除します。ただし、特定のJARファイルの最適化機能(索引など)が正常に動作しない可能性があります。
-SN
または--segment-limit=N
この値は、各アーカイブ・セグメントの予想ターゲット・サイズ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
デフォルト値をオーバーライドし、入力情報を保持します。ただし、転送されるアーカイブのサイズは大きくなります。指定可能な値は、true
、false
またはkeep
です。
value
がtrue
またはfalseの場合、packer200
コマンドは出力アーカイブ内でそれに応じたデフレーション・ヒントを設定し、アーカイブ要素の個別のデフレーション・ヒントを転送しません。
値がkeep
の場合、入力JARで見つかったデフレーション・ヒントが保持されます。これはデフォルトです。
-mvalue
または--modification-time=value
指定可能な値は、latest
およびkeep
です。
値がlatest
の場合、パック・ツールは元のアーカイブで使用可能なすべてのエントリ間の最終更新時刻か、そのセグメントで使用可能なすべてのエントリの最終更新時刻を特定しようとします。この単一の値はセグメントの一部として転送され、各セグメントの全エントリに適用されます。この場合、すべてのインストール・ファイルに単一の日付が設定されるという問題はありますが、アーカイブの転送サイズを少し小さくすることができます。
値がkeep
の場合、入力JAR内で見つかった変更時刻が保持されます。これはデフォルトです。
-P
fileまたは--pass-file=file
ファイルを圧縮せず、バイト単位で転送するように指定します。このオプションを繰返し使用して、複数のファイルを指定できます。システム・ファイル・セパレータがJARファイル・セパレータのスラッシュ(/)に置き換えられる点を除き、パス名の変換は行われません。ファイル名は、JARファイル内の文字列と完全に一致していなければなりません。file
がディレクトリ名の場合、そのディレクトリ下のすべてのファイルが渡されます。
-U
actionまたは--unknown-attribute=action
デフォルトの動作をオーバーライドします。つまり、不明な属性を含むクラス・ファイルは、指定されたaction
で渡されます。actionに指定可能な値は、error
、strip
またはpass
です。
値がerror
の場合、pack200
コマンドの操作全体に失敗し、適切な解説が表示されます。
値がstrip
の場合、属性が削除されます。Java仮想マシン(JVM)の必須属性を削除すると、クラス・ローダーで障害が発生する可能性があります。
値がpass
の場合、クラス全体が1つのリソースとして転送されます。
-C attribute-name=layout
または--class-attribute=attribute-name=action
(ユーザー定義属性) 「—Dattribute-name=layout」
の説明を参照してください。
-F attribute-name=layout
または--field-attribute
=attribute-name=action(ユーザー定義属性) 「—Dattribute-name=layout」
の説明を参照してください
-M
attribute-name=layoutまたは--method-attribute=attribute-name=action
(ユーザー定義属性) 「—Dattribute-name=layout」
の説明を参照してください
—D attribute-name=layout
または--code-attribute=attribute-name=action
(ユーザー定義属性) クラス・エンティティにclass-attribute
、field-attribute
、method-attribute
、code-attribute
などの属性のレイアウトを指定できます。attribute-name
には、レイアウトまたはアクションが定義される属性の名前を指定します。action
に指定可能な値は、some-layout-string
、error
、strip
または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
指定されたオプションをJava仮想マシンに渡します。たとえば、-J-Xms48m
と指定すると、スタートアップ・メモリーは48Mバイトに設定されます。