- java.lang.Object
-
- java.util.jar.Pack200
-
@Deprecated(since="11", forRemoval=true) public abstract class Pack200 extends Object
Deprecated, for removal: This API element is subject to removal in a future version.This class is deprecated, and is planned for removal in a future release.以Pack200格式将JAR文件转换为打包流或从打包流转换。 请参考Network Transfer Format JSR 200 Specification通常,应用程序开发人员使用打包器引擎在网站上部署或托管JAR文件。 部署应用程序使用解包器引擎将字节流转换回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
参数传递给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()
Deprecated, for removal: This API element is subject to removal in a future version.获取实现Packer的类的新实例。如果定义了系统属性
java.util.jar.Pack200.Packer
,则该值将被视为具体实现类的完全限定名称,该实现类必须实现Packer。 加载并实例化此类。 如果此过程失败,则抛出未指定的错误。如果尚未使用系统属性指定实现,则实例化系统默认实现类,并返回结果。
注意:如果多个线程同时使用它,则无法保证返回的对象正常运行。 多线程应用程序应该分配多个打包引擎,或者使用锁定序列化一个引擎的使用。
- 结果
- 新分配的Packer引擎。
-
newUnpacker
public static Pack200.Unpacker newUnpacker()
Deprecated, for removal: This API element is subject to removal in a future version.获取实现Unpacker的类的新实例。如果定义了系统属性
java.util.jar.Pack200.Unpacker
,则该值将被视为具体实现类的完全限定名称,该实现类必须实现Unpacker。 该类已加载并实例化。 如果此过程失败,则抛出未指定的错误。如果尚未使用系统属性指定实现,则实例化系统默认实现类,并返回结果。
注意:如果多个线程同时使用它,则无法保证返回的对象正常运行。 多线程应用程序应该分配多个解包器引擎,或者使用锁定序列化一个引擎的使用。
- 结果
- 新分配的Unpacker引擎。
-
-