public abstract class Pack200 extends Object
通常、packer エンジンは、Web サイトに JAR ファイルを配備またはホストする場合にアプリケーション開発者により使用されます。unpacker エンジンは、バイトストリームを元の JAR 形式に変換する場合に配備アプリケーションにより使用されます。
次に、packer および unpacker の使用例を示します。
    import java.util.jar.Pack200;
    import java.util.jar.Pack200.*;
    ...
    // Create the Packer object
    Packer packer = Pack200.newPacker();
    // Initialize the state by setting the desired properties
    Map p = packer.properties();
    // take more time choosing codings for better compression
    p.put(Packer.EFFORT, "7");  // default is "5"
    // use largest-possible archive segments (>10% better compression).
    p.put(Packer.SEGMENT_LIMIT, "-1");
    // reorder files for better compression.
    p.put(Packer.KEEP_FILE_ORDER, Packer.FALSE);
    // smear modification times to a single value.
    p.put(Packer.MODIFICATION_TIME, Packer.LATEST);
    // ignore all JAR deflation requests,
    // transmitting a single request to use "store" mode.
    p.put(Packer.DEFLATE_HINT, Packer.FALSE);
    // discard debug attributes
    p.put(Packer.CODE_ATTRIBUTE_PFX+"LineNumberTable", Packer.STRIP);
    // throw an error if an attribute is unrecognized
    p.put(Packer.UNKNOWN_ATTRIBUTE, Packer.ERROR);
    // pass one class file uncompressed:
    p.put(Packer.PASS_FILE_PFX+0, "mutants/Rogue.class");
    try {
        JarFile jarFile = new JarFile("/tmp/testref.jar");
        FileOutputStream fos = new FileOutputStream("/tmp/test.pack");
        // Call the packer
        packer.pack(jarFile, fos);
        jarFile.close();
        fos.close();
        File f = new File("/tmp/test.pack");
        FileOutputStream fostream = new FileOutputStream("/tmp/test.jar");
        JarOutputStream jostream = new JarOutputStream(fostream);
        Unpacker unpacker = Pack200.newUnpacker();
        // Call the unpacker
        unpacker.unpack(f, jostream);
        // Must explicitly close the output.
        jostream.close();
    } catch (IOException ioe) {
        ioe.printStackTrace();
    }
 gzip を使用して圧縮された Pack200 ファイルは、HTTP/1.1 Web サーバーに収容できます。配備アプリケーションは、"Accept-Encoding=pack200-gzip" を使用できます。これは、クライアントアプリケーションが Pack200 でエンコードされ、さらに gzip で圧縮されたファイルのバージョンを要求していることをサーバーに示します。詳細は、『Java 配備ガイド』を参照してください。
ほかで指定がない場合、null 引数をコンストラクタ、またはこのクラスのメソッドへ渡すと NullPointerException がスローされます。
| 修飾子と型 | クラスと説明 | 
|---|---|
| static interface  | Pack200.Packerpacker エンジンは、さまざまな変換を入力 JAR ファイルに適用して、パックストリームを gzip や zip などのコンプレッサを使用して大幅に圧縮可能にします。 | 
| static interface  | Pack200.Unpackerunpacker エンジンは、パックされたストリームを JAR ファイルに変換します。 | 
public static Pack200.Packer newPacker()
システムプロパティー java.util.jar.Pack200.Packer が定義されていれば、値が具象実装クラスの完全指定名になります。これは Packer を実装する必要があります。このクラスがロードされ、そのインスタンスが作成されます。この処理に失敗した場合は、未指定のエラーがスローされます。
システムプロパティーを使って実装が指定されていない場合、システムのデフォルト実装クラスのインスタンスが作成され、結果が返されます。
注:返されるオブジェクトを複数スレッドが同時に使用する場合、そのオブジェクトが適正に動作することは保証されません。マルチスレッドのアプリケーションは、複数の packer エンジンを割り当てるか、ロックを持つ 1 つのエンジンの使用を直列化する必要があります。
public static Pack200.Unpacker newUnpacker()
システムプロパティー java.util.jar.Pack200.Unpacker が定義されていれば、値が具象実装クラスの完全指定名になります。これは Unpacker を実装する必要があります。このクラスがロードされ、そのインスタンスが作成されます。この処理に失敗した場合は、未指定のエラーがスローされます。
システムプロパティーを使って実装が指定されていない場合、システムのデフォルト実装クラスのインスタンスが作成され、結果が返されます。
注:返されるオブジェクトを複数スレッドが同時に使用する場合、そのオブジェクトが適正に動作することは保証されません。マルチスレッドのアプリケーションは、複数の unpacker エンジンを割り当てるか、ロックを持つ 1 つのエンジンの使用を直列化する必要があります。
 バグまたは機能を送信 
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.