pack200(1)

名前
pack200 - JARパック・ツール

    o   形式

    o   説明

    o   オプション

    o   終了ステータス

    o   関連項目

    o   注意

形式

pack200 [ options ] output-file JAR-file

オプションの指定順序に決まりはありません。コマンドラインまたはpropertiesファイルに指定された最後のオプションが、それ以前に指定されたすべてのオプションより優先されます。

    options
        コマンドライン・オプション。

    output-file
        出力ファイルの名前。

    JAR-file
        入力ファイルの名前。

説明

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

pack200ツールには、圧縮エンジンの設定や微調整を行うオプションが用意されています。

  一般的な使用方法:

% pack200 myarchive.pack.gz myarchive.jar

この例では、デフォルトのpack200設定を使用してmyarchive.pack.gzが生成されます。

オプション

-r --repack

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

% 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

出力からデバッグ用の属性を削除します。これには、SourceFile、LineNumberTable、LocalVariableTable、LocalVariableTypeTableが含まれます。これらの属性を削除すれば、ダウンロードとインストールのサイズは小さくなりますが、デバッガの機能は制限されます。

--keep-file-order

入力ファイル内のファイルの順序を維持します。これがデフォルトの動作です。

-O --no-keep-file-order

パック・ツールは、すべての要素を並べ替えて転送します。さらに、JARディレクトリ名が削除される場合があります。このため、ダウンロードのサイズは小さくなりますが、インデックスをはじめとするJARファイルの最適化機能は正常に動作しなくなることがあります。

-Svalue --segment-limit=value

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

各セグメントのサイズは、セグメントに変換されるそれぞれの入力ファイルのサイズのほか、その名前と他の送信されるプロパティのサイズを計算して推測されます。

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

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

-Evalue --effort=value

単一の10進数値を指定した場合、パック・ツールは、指定された圧縮率でアーカイブを圧縮します。レベル1の場合は、比較的短い圧縮時間でやや大きめのファイルが生成されますが、レベル9の場合は、非常に長い時間がかかるものの、より圧縮率の高いファイルが生成されます。特殊な値0を指定した場合は、元のJARファイルを圧縮なしで直接コピーします。JSR 200標準では、すべての解凍プログラムが、この特別な場合をアーカイブ全体のパススルーと解釈するように規定しています。

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

-Hvalue --deflate-hint=value

入力情報を保存するというデフォルト値を上書きします。転送されるアーカイブのサイズは大きくなる場合があります。次の値を指定できます。

    true

    false
        どちらの場合でも、指定に従ってパック・ツールがデフレーション・ヒントを出力アーカイブに設定します。アーカイブ要素の個々のデフレーション・ヒントは転送されません。

    keep
        入力JAR.内で見つかったデフレーション・ヒントを維持します。(これがデフォルトです。)

-mvalue --modification-time=value

次の値を指定できます。

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

    keep
        入力JAR内で見つかった変更時刻を維持します。(これがデフォルトです。)

-Pfile --pass-file=file

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

-Uaction --unknown-attribute=action

デフォルトの動作を無効にします。たとえば、不明な属性を含むクラス・ファイルを指定したアクションで転送します。アクションとして指定可能な値は次のとおりです。

    error
        pack200の操作全体に失敗し、適切な解説が表示されます。

    strip
        属性がドロップされます。注意: VM必須属性を削除するとクラス・ローダーの障害が発生することがあります。

    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属性、Field属性、Method属性、Code属性などの属性のレイアウトを指定できます。attribute-nameには、これからレイアウトまたはアクションを定義する属性の名前を指定します。アクションとして指定可能な値は次のとおりです。

    some-layout-string
        レイアウト言語は、JSR 200仕様に定義されています。

    例: --class-attribute=SourceFile=RUH

    error
        この属性が検出された場合、pack200の操作に失敗し、適切な解説が表示されます。

    strip
        この属性が検出された場合、属性は出力から削除されます。注意: VM必須属性を削除するとクラス・ローダーの障害が発生することがあります。

例: --class-attribute=CompilationID=passというこの属性を含むクラス・ファイルを転送します。パック・ツールは、その他のアクションを行いません。

-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

optionを、pack200から呼び出されたJava起動ツールに渡します。たとえば、-J-Xms48mと指定すると、スタートアップ・メモリーが48Mバイトに設定されます。このオプションは-Xで始まっていませんが、pack200の標準オプションではありません。-Jを使用して、Javaで記述されたアプリケーションを実行する背後のVMにオプション渡すことは、よく行われています。

終了ステータス

次の終了値が返されます。

0正常終了した場合

>0エラーが発生した場合

関連項目

    o   unpack200(1)

    o   Java SEのドキュメント @
        http://docs.oracle.com/javase/7/docs/index.html

    o   Javaデプロイメント・ガイド - Pack200 @
        http://docs.oracle.com/javase/7/docs/technotes/guides/deployment/deployment-guide/pack200.html

    o   jar(1) - Java Archiveツール

    o   jarsigner(1) - JAR署名ツール

    o   attributes(5)のマニュアル・ページ

注意

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

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