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.Packer
packer エンジンは、さまざまな変換を入力 JAR ファイルに適用して、パックストリームを gzip や zip などのコンプレッサを使用して大幅に圧縮可能にします。
|
static interface |
Pack200.Unpacker
unpacker エンジンは、パックされたストリームを 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.