java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.util.jar
类 Pack200

java.lang.Object
  继承者 java.util.jar.Pack200

public abstract class Pack200
extends Object

以 Pack200 格式在 JAR 文件和打包的流之间进行转换。请参阅以下网址的《Network Trasfer Format JSR 200 Specification》:http://jcp.org/aboutJava/communityprocess/review/jsr200/index.html。

通常,应用程序开发人员使用打包器引擎在网站上部署或宿主 JAR 文件。部署应用程序则使用解包器引擎把字节流转换回 JAR 格式。

下面是使用打包器和解包器的一个示例:

    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
          打包器引擎把各种转换应用到输入 JAR 文件,从而可以通过压缩器(如 gzip 或 zip)高度压缩打包流。
static interface Pack200.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
 

方法详细信息

newPacker

public static Pack200.Packer newPacker()
获取一个实现 Packer 的新的类实例。
  • 如果定义了系统属性 java.util.jar.Pack200.Packer,那么该值将为具体实现类(必须实现 Packer)的完全限定名称。加载并实例化此类。如果此进程失败,则抛出未指定错误。

  • 如果尚未用系统属性指定实现,那么实例化系统默认的实现类并返回结果。

  • 注:如果多个线程同时使用返回的对象,则无法保证返回的对象操作正确。多线程应用程序应该分配多个打包器引擎,或者利用一个锁定来顺序使用一个引擎。

    返回:
    新分配的 Packer 引擎。

    newUnpacker

    public static Pack200.Unpacker newUnpacker()
    获取一个实现 Unpacker 的新的类实例。
  • 如果定义了系统属性 java.util.jar.Pack200.Unpacker,那么该值将为具体实现类(必须实现 Unpacker)的完全限定名称。加载并实例化此类。如果此进程失败,则抛出未指定错误。

  • 如果尚未用系统属性指定实现,那么实例化系统默认的实现类并返回结果。

  • 注:如果多个线程同时使用返回的对象,则无法保证返回的对象操作正确。多线程应用程序应该分配多个解包器引擎,或者利用一个锁定来顺序使用一个引擎。

    返回:
    新分配的 Unpacker 引擎。

    JavaTM 2 Platform
    Standard Ed. 5.0

    提交错误或意见
    有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

    版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策