モジュール java.base
パッケージ java.util.jar

クラスPack200

java.lang.Object
java.util.jar.Pack200

@Deprecated(since="11",
            forRemoval=true)
public abstract class Pack200
extends Object
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
このクラスは非推奨であり、将来のリリースで削除される予定です。
JARファイルをPack200形式のパック・ストリームに変換にしたり、Pack200形式のパック・ストリームをJARファイルに変換します。 「ネットワーク転送形式JSR 200仕様」を参照してください

通常、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 Deployment Guideを参照してください。

ほかで指定がない場合、null引数をコンストラクタまたはこのクラスのメソッドへ渡すと、NullPointerExceptionがスローされます。

導入されたバージョン:
1.5
  • ネストされたクラスのサマリー

    ネストされたクラス 
    修飾子と型 クラス 説明
    static interface  Pack200.Packer
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    このインタフェースは非推奨であり、将来のリリースで削除される予定です。
    static interface  Pack200.Unpacker
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    このインタフェースは非推奨であり、将来のリリースで削除される予定です。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    static Pack200.Packer newPacker()
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    Packerを実装するクラスの新規インスタンスを取得します。
    static Pack200.Unpacker newUnpacker()
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    Unpackerを実装するクラスの新規インスタンスを取得します。

    クラス java.lang.Objectで宣言されたメソッド

    cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • メソッドの詳細

    • newPacker

      public static Pack200.Packer newPacker()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      Packerを実装するクラスの新規インスタンスを取得します。
      • システム・プロパティjava.util.jar.Pack200.Packerが定義されている場合、この値は、パックを実装する必要がある具体的な実装クラスの完全修飾名になります。 このクラスがロードされ、そのインスタンスが作成されます。 この処理に失敗した場合は、未指定のエラーがスローされます。

      • システム・プロパティを使って実装が指定されていない場合、システムのデフォルト実装クラスのインスタンスが作成され、結果が返されます。

      注: 返されるオブジェクトを複数スレッドが同時に使用する場合、そのオブジェクトが適正に動作することは保証されません。 マルチ・スレッドのアプリケーションは、複数のpackerエンジンを割り当てるか、ロックを持つ1つのエンジンの使用を直列化する必要があります。

      戻り値:
      新しく割り当てられたPackerエンジン
    • newUnpacker

      public static Pack200.Unpacker newUnpacker()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      Unpackerを実装するクラスの新規インスタンスを取得します。
      • システム・プロパティjava.util.jar.Pack200.Unpackerが定義されている場合、値は具象実装クラスの完全修飾名とみなされ、セミコロンを実装する必要があります。 このクラスがロードされ、そのインスタンスが作成されます。 この処理に失敗した場合は、未指定のエラーがスローされます。

      • システム・プロパティを使って実装が指定されていない場合、システムのデフォルト実装クラスのインスタンスが作成され、結果が返されます。

      注: 返されるオブジェクトを複数スレッドが同時に使用する場合、そのオブジェクトが適正に動作することは保証されません。 マルチ・スレッドのアプリケーションは、複数のunpackerエンジンを割り当てるか、ロックを持つ1つのエンジンの使用を直列化する必要があります。

      戻り値:
      新しく割り当てられたUnpackerエンジン