pack200

Section: Javaデプロイメント・ツール (1)
Updated: 2013年11月21日
Page Index
 

名前

pack200 - WebデプロイメントのためにJARファイルを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にすることを強くお薦めします。

この制限が課されていない10 MBの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

指定可能な値はlatestkeepです。

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

値がkeepの場合、入力JARで確認された変更時間が保持されます。これがデフォルトです。

-Pfile
--pass-file=file

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

-Uaction
--unknown-attribute=action

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

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

値がstripの場合、属性は削除されます。Java Virtual Machine (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-attributeおよびcode-attributeなどの属性のレイアウトを指定できます。attribute-nameには、これからレイアウトまたはアクションを定義する属性の名前を指定します。actionとして指定可能な値は、some-layout-stringerrorstrippassです。

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

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

値がstripの場合、属性が出力から削除されます。VM必須属性を削除するとクラス・ローダーの障害が発生することがあります。たとえば、--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 Virtual Machineに渡します。詳細は、java(1)コマンドのリファレンス・ページを参照してください。たとえば、-J-Xms48mと指定すると、スタートアップ・メモリーは48MBに設定されます。
 

終了ステータス

次の終了値が返されます: 正常終了の場合は0、エラーが発生した場合は0より大きい値。  

注意

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

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

関連項目

unpack200(1)

jar(1)

jarsigner(1)


 

Index

名前
概要
説明
オプション
終了ステータス
注意
関連項目