|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.util.jar.Pack200
public abstract class Pack200
JAR ファイルを Pack200 形式のパックストリームに変換にしたり、Pack200 形式のパックストリームを JAR ファイルに変換します。詳細は、http://jcp.org/aboutJava/communityprocess/review/jsr200/index.html の「Network Transfer Format JSR 200 Specification」を参照してください。
通常、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 がスローされます。
| 入れ子のクラスの概要 | |
|---|---|
static interface |
Pack200.Packer
packer エンジンは、さまざまな変換を入力 JAR ファイルに適用して、パックストリームを gzip や zip などのコンプレッサを使用して大幅に圧縮可能にします。 |
static interface |
Pack200.Unpacker
unpacker エンジンは、パックされたストリームを JAR ファイルに変換します。 |
| メソッドの概要 | |
|---|---|
static Pack200.Packer |
newPacker()
Packer を実装するクラスの新規インスタンスを取得します。 |
static Pack200.Unpacker |
newUnpacker()
Unpacker を実装するクラスの新規インスタンスを取得します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| メソッドの詳細 |
|---|
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 つのエンジンの使用を直列化する必要があります。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。