Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class Pack200 extends Object
Обычно механизм упаковщика используется разработчиками приложений, чтобы развернуть или разместить файлы 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(); }
Файл Pack200, сжатый с gzip, может быть размещен на веб-серверах HTTP/1.1. Приложения развертывания могут использовать "Accept-Encoding=pack200-gzip". Это указывает к серверу, что клиентское приложение требует версии файла, закодированного с Pack200 и далее сжатый с gzip. Пожалуйста, обратитесь к Руководству по Развертыванию Java для большего количества деталей и методов.
Если не указано иное, передача параметра null конструктору или методу в этом классе вызовет a NullPointerException
быть брошенным.
Модификатор и Тип | Класс и Описание |
---|---|
static interface |
Pack200. Упаковщик
Механизм упаковщика применяет различные преобразования к входному файлу JAR, делая поток пакета, очень сжимаемый компрессором, такие как gzip или zip.
|
static interface |
Pack200. Неупаковщик
Механизм неупаковщика преобразовывает упакованный поток в файл JAR.
|
Модификатор и Тип | Метод и Описание |
---|---|
static Pack200.Packer |
newPacker()
Получите новый экземпляр класса, который реализует Пакера.
|
static Pack200.Unpacker |
newUnpacker()
Получите новый экземпляр класса, который реализует Неупаковщика.
|
public static Pack200.Packer newPacker()
Если системное свойство java.util.jar.Pack200.Packer определяется, то значение принимается, чтобы быть полностью определенным именем конкретного класса реализации, который должен реализовать Пакера. Этот класс загружается и инстанцируется. Если этот процесс перестал работать тогда, неустановленная ошибка бросается.
Если реализация не была определена с системным свойством, то класс реализации системного значения по умолчанию инстанцируют, и результат возвращается.
Отметьте: возвращенный объект, как гарантируют, не будет работать правильно, если многократные потоки будут использовать его одновременно. Многопоточное приложение должно или выделить многократные механизмы упаковщика, или иначе сериализировать использование одного механизма с блокировкой.
public static Pack200.Unpacker newUnpacker()
Если системное свойство java.util.jar.Pack200.Unpacker определяется, то значение принимается, чтобы быть полностью определенным именем конкретного класса реализации, который должен реализовать Неупаковщика. Класс загружается и инстанцируется. Если этот процесс перестал работать тогда, неустановленная ошибка бросается.
Если реализация не была определена с системным свойством, то класс реализации системного значения по умолчанию инстанцируют, и результат возвращается.
Отметьте: возвращенный объект, как гарантируют, не будет работать правильно, если многократные потоки будут использовать его одновременно. Многопоточное приложение должно или выделить многократные механизмы неупаковщика, или иначе сериализировать использование одного механизма с блокировкой.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.