JARファイルをWeb配備用のpack200圧縮ファイルにパッケージ化します。
pack200 [options] output-file JAR-file
オプションは任意の順序で指定できます。コマンド行またはpropertiesファイルに指定された最後のオプションが、それ以前に指定されたすべてのオプションより優先されます。
コマンド行オプション。「オプション」を参照してください。
出力ファイルの名前。
入力ファイルの名前。
pack200
コマンドは、Java gzip圧縮プログラムを使用して、JARファイルをpack200圧縮ファイルに変換するJavaアプリケーションです。pack200ファイルは高圧縮のファイルであり、直接配備すると帯域幅を節約し、ダウンロード時間を短縮できます。
pack200
コマンドには、圧縮エンジンの設定や微調整を行うオプションが用意されています。次の例では、一般的な使用法を示します。ここでmyarchive.pack.gz
は、pack200
コマンドのデフォルト設定で生成されます。
pack200 myarchive.pack.gz myarchive.jar
JARファイルをパックおよびアンパックすることで、JARファイルを生成します。生成されたファイルは、jarsigner(1)
ツールの入力ファイルとして使用できます。次の例では、myarchive.jarファイルをパックおよびアンパックします。
pack200 --repack myarchive-packer.jar myarchive.jar pack200 --repack myarchive.jar
次の例では、入力ファイル内のファイル順序を保存します。
pack200
ファイルを生成します。このオプションを指定するときは、適切な圧縮ツールを使用する必要があります。また、ターゲット・システムでは、対応する圧縮解除ツールを使用する必要があります。
pack200 --no-gzip myarchive.pack myarchive.jar
出力からデバッグ属性を削除します。たとえば、SourceFile
、LineNumberTable
、LocalVariableTable
、LocalVariableTypeTable
などの属性があります。これらの属性を削除すれば、ダウンロードとインストールのサイズは小さくなりますが、デバッガの機能は制限されます。
入力ファイル内のファイル順序を保存します。これはデフォルトの動作。
パック・ツールは、すべての要素を並べ替えて転送します。また、パック・ツールはダウンロード・サイズを削減するために、JARディレクトリ名を削除します。ただし、特定のJARファイルの最適化機能(索引など)が正常に動作しない可能性があります。
この値は、各アーカイブ・セグメントの予想ターゲット・サイズ N (バイト単位)です。Nバイト以上を必要とする単一の入力ファイルには、独立したアーカイブ・セグメントが割り当てられます。これは特殊な例ですが、値が-1
の場合、すべての入力ファイルを含む単一の巨大なセグメントが生成されます。一方、値が0の場合、クラスごとにセグメントが1つずつ生成されます。アーカイブ・セグメントのサイズが大きければ大きいほど断片化は起こりにくく、圧縮率も高くなります。ただし、こうしたセグメントを処理するためには、大量のメモリーが必要になります。
各セグメントのサイズは、セグメント内で転送される入力ファイルのサイズと、このファイルの名前のサイズ、およびその他の転送プロパティによって予測されます。
デフォルトは-1です。これは、パック・ツールが単一のセグメント出力ファイルを作成することを意味します。非常に大きな出力ファイルが生成される場合には、セグメント化を使用するか、入力ファイルをより小さなJARに分割することを強くお薦めします。
通常、この制限が課されていない10MバイトのJARパック・ファイルは、元の10%程度のサイズにパックされます。ただし、パック・ツールでより大きなJavaヒープ(セグメントの制限の約10倍)を必要とする場合もあります。
単一の10進数値を指定した場合、パック・ツールは、指定された圧縮率でアーカイブを圧縮します。レベル1の場合、圧縮速度は速くても圧縮率はそれほど高くありません。レベル9の場合、圧縮速度は遅くても圧縮率は高くなります。特殊な値0を指定すると、pack200
コマンドは元のJARファイルを圧縮せずに直接コピーします。JSR 200標準では、すべてのアンパック・ツールはこの特殊な処理をアーカイブ全体のパススルーとして理解する必要があります。
デフォルト値は5です。この場合、標準的な時間で、適度な圧縮が行われます。
デフォルト値をオーバーライドし、入力情報を保持します。ただし、転送されるアーカイブのサイズは大きくなります。指定可能な値は、true
、false
またはkeep
です。
value
がtrue
またはfalseの場合、packer200
コマンドは出力アーカイブ内でそれに応じたデフレーション・ヒントを設定し、アーカイブ要素の個別のデフレーション・ヒントを転送しません。
値がkeep
の場合、入力JARで見つかったデフレーション・ヒントが保持されます。これはデフォルトの設定です。
指定可能な値は、latest
およびkeep
です。
値がlatestの場合、パック・ツールは元のアーカイブで使用可能なすべてのエントリ間の最終更新時刻か、そのセグメントで使用可能なすべてのエントリの最終更新時刻を特定しようとします。この単一の値はセグメントの一部として転送され、各セグメントの全エントリに適用されます。この場合、すべてのインストール・ファイルに単一の日付が設定されるという問題はありますが、アーカイブの転送サイズを少し小さくすることができます。
値がkeep
の場合、入力JAR内で見つかった変更時刻が保持されます。これはデフォルトの設定です。
ファイルを圧縮せず、バイト単位で転送するように指定します。このオプションを繰返し使用して、複数のファイルを指定できます。システム・ファイル・セパレータがJARファイル・セパレータのスラッシュ(/)に置き換えられる点を除き、パス名の変換は行われません。ファイル名は、JARファイル内の文字列と完全に一致していなければなりません。file
がディレクトリ名の場合、そのディレクトリ下のすべてのファイルが渡されます。
デフォルトの動作をオーバーライドします。つまり、不明な属性を含むクラス・ファイルは、指定されたaction
で渡されます。actionに指定可能な値は、error
、strip
またはpass
です。
値がerror
の場合、pack200
コマンドの操作全体に失敗し、適切な解説が表示されます。
値がstrip
の場合、属性が削除されます。Java仮想マシン(JVM)の必須属性を削除すると、クラス・ローダーで障害が発生する可能性があります。
値がpass
の場合、クラス全体が1つのリソースとして転送されます。
次のオプションを参照してください。
次のオプションを参照してください。
次のオプションを参照してください。
これらの4つのオプションでは、クラス・エンティティに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つのリソースとして転送されます。
コマンド行に、パック・ツールを初期化するための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
最小限のメッセージを出力します。このオプションを複数指定すると、より詳細なメッセージが作成されます。
メッセージを表示せずに動作します。
出力メッセージのログ・ファイルを指定します。
このコマンドに関するヘルプ情報を出力します。
このコマンドに関するバージョン情報を出力します。
指定されたオプションをJava仮想マシンに渡します。詳細は、java
(1)コマンドのリファレンス・ページを参照してください。たとえば、-J-Xms48m
と指定すると、スタートアップ・メモリーは48Mバイトに設定されます。