@Deprecated(since="11", forRemoval=true) 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 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を実装するクラスの新規インスタンスを取得します。
-
メソッドの詳細
-
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エンジン
-