JavaTM Platform
Standard Ed. 6

java.util.jar
클래스 Pack200

java.lang.Object 
  상위를 확장 java.util.jar.Pack200


public abstract class Pack200
extends Object

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 로 encode 되어 한층 더 gzip 로 압축된 파일의 버젼을 요구하고 있는 것을 서버에 나타냅니다. 자세한 것은,「Java Deployment Guide」를 참조해 주세요.  

별도 지정된 사항이 없는 경우,null 인수를 생성자 , 또는 이 클래스의 메소드에 건네주면(자) NullPointerException 가 throw 됩니다.

도입된 버젼:
1.5

상자의 클래스의 개요
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
 

메소드의 상세

newPacker

public static Pack200.Packer  newPacker()
Packer 를 구현하는 클래스의 신규 인스턴스를 가져옵니다.
  • 시스템 프로퍼티 java.util.jar.Pack200.Packer 가 정의되고 있으면, 값이 구상 구현 클래스의 완전 수식명이 됩니다. 이것은 Packer 를 구현할 필요가 있습니다. 이 클래스가 로드 되어 그 인스턴스가 작성됩니다. 이 처리에 실패했을 경우는, 미지정의 에러가 throw 됩니다.

  • 시스템 프로퍼티을 사용해 구현이 지정되어 있지 않은 경우, 시스템의 디폴트 구현 클래스의 인스턴스가 작성되어 결과가 돌려주어집니다.

  • 주:반환되는 객체를 복수 thread가 동시에 사용하는 경우, 그 객체가 적정하게 동작하는 것은 보증되지 않습니다. multi-thread의 어플리케이션은, 복수의 packer 엔진을 할당하는지, 락을 가지는 1 개의 엔진의 사용을 직렬화할 필요가 있습니다.

    반환값:
    새롭게 할당할 수 있었던 Packer 엔진

    newUnpacker

    public static Pack200.Unpacker  newUnpacker()
    Unpacker 를 구현하는 클래스의 신규 인스턴스를 가져옵니다.
  • 시스템 프로퍼티 java.util.jar.Pack200.Unpacker 가 정의되고 있으면, 값은 구상 구현 클래스의 완전 수식명이 됩니다. 이것은 Unpacker 를 구현할 필요가 있습니다. 이 클래스가 로드 되어 그 인스턴스가 작성됩니다. 이 처리에 실패했을 경우는, 미지정의 에러가 throw 됩니다.

  • 시스템 프로퍼티을 사용해 구현이 지정되어 있지 않은 경우, 시스템의 디폴트 구현 클래스의 인스턴스가 작성되어 결과가 돌려주어집니다.

  • 주:반환되는 객체를 복수 thread가 동시에 사용하는 경우, 그 객체가 적정하게 동작하는 것은 보증되지 않습니다. multi-thread의 어플리케이션은, 복수의 unpacker 엔진을 할당하는지, 락을 가지는 1 개의 엔진의 사용을 직렬화할 필요가 있습니다.

    반환값:
    새롭게 할당할 수 있었던 Unpacker 엔진

    JavaTM Platform
    Standard Ed. 6

    버그의 보고와 기능의 요청
    한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

    Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.