This package provides methods to read files from a JAR file and
to transform them to a more compact transfer format called Pack200.
It also provides methods to receive the transmitted data and expand
it into a JAR file equivalent to the original JAR file.
The pack methods may be used by application developers
who wish to deploy large JARs on the web. The unpack methods may be used
by deployment applications such as Java Web Start and Java Plugin.
In typical use, the packed output should be further compressed using
a suitable tool such as gzip or java.util.zip.GZIPOutputStream.
The resulting file (with a suffix ".pack.gz") should be hosted on a HTTP/1.1
compliant server, which will be capable of handling "Accept-Encoding",
as specified by the HTTP 1.1 RFC2616 specification.
NOTE: It is recommended that the original ".jar" file be hosted
in addition to the ".pack.gz" file, so that older client implementations
will continue to work reliably.
(On-demand compression by the server is not recommended.)
When a client application requests a ".jar" file (call it "Large.jar"),
the client will transmit the headers
"Content-Type=application/x-java-archive" as well as "Accept-Encoding=pack200-gzip".
This indicates to the server that the client application desires an version
of the file encoded with Pack200 and further compressed with gzip.
The server implementation will typically check for the existence of "Large.pack.gz".
If that file is available, the server will transmit it with the headers
"Content-Encoding=pack200-gzip" and "Content-Type=application/x-java-archive".
If the ".pack.gz" file, is not available, then the server will transmit
the original ".jar"
with "Content-Encoding=null" and "Content-Type=application/x-java-archive".
A MIME type of "application/x-java-pack200" may be specified by the
client application to indicate a ".pack" file is required.
However, this has limited capability, and is not recommended.
Package Specification
Network Transfer Format Specification :
http://jcp.org/en/jsr/detail?id=200
Related Documentation
For overviews, tutorials, examples, guides, and tool documentation, please
see:
@since JDK1.5.0
|