.'" t
." Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
."
." This code is free software; you can redistribute it and/or modify it
." under the terms of the GNU General Public License version 2 only, as
." published by the Free Software Foundation.
."
." This code is distributed in the hope that it will be useful, but WITHOUT
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
." version 2 for more details (a copy is included in the LICENSE file that
." accompanied this code).
."
." You should have received a copy of the GNU General Public License version
." 2 along with this work; if not, write to the Free Software Foundation,
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
."
." Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
." CA 95054 USA or visit www.sun.com if you need additional information or
." have any questions.
." ` 
.TH pack200 1 "05 Aug 2006"
." Generated by html2roff

.LP
.SH NAME
pack200 \- JAR Packing tool
.LP
.SH "SYNOPSIS"
.LP

.LP
.LP
\f4pack200\fP\f2 [ \fP\f2options\fP ] \f2output\-file\fP \f2JAR\-file\fP
.LP
.LP
Options may be in any order. The last option on the command line or in a properties file supersedes all previously specified options.
.LP
.RS 3

.LP
.TP 3
options 
Command\-line options. 
.TP 3
output\-file 
Name of the output file. 
.TP 3
JAR\-file 
Name of the input file. 
.LP
.RE
.SH "DESCRIPTION"
.LP

.LP
.LP
The \f2pack200\fP tool is a Java application that transforms a JAR file into a compressed \f2pack200\fP file using the Java \f2gzip\fP compressor. The \f2pack200\fP files are highly compressed files that can be directly deployed, saving bandwidth and reducing download time.
.LP
.LP
The \f2pack200\fP tool uses several options to fine\-tune and set the compression engine.
.LP
.SS 
Typical usage:
.LP

.LP
.LP
\f2% pack200 myarchive.pack.gz myarchive.jar\fP
.LP
.LP
In this example, \f2myarchive.pack.gz\fP is produced using the default \f2pack200\fP settings.
.LP
.SH "OPTIONS"
.LP

.LP
.LP
\f4\-r \-\-repack\fP
.LP
.RS 3

.LP
.LP
Produces a JAR file by packing the file \f2myarchive.jar\fP and unpacking it. The resulting file can be used as an input to the \f2jarsigner(1)\fP tool.
.LP
.RS 3

.LP
.LP
\f2% pack200 \-\-repack myarchive\-packer.jar myarchive.jar\fP
.LP
.LP
\f2% pack200 \-\-repack myarchive.jar\fP
.LP
.RE
.RE
.LP
\f4\-g \-\-no\-gzip\fP
.LP
.RS 3

.LP
.LP
Produces a \f2pack200\fP file. With this option a suitable compressor must be used, and the target system must use a corresponding decompresser.
.LP
.RS 3

.LP
.LP
\f2% pack200 \-\-no\-gzip myarchive.pack myarchive.jar\fP
.LP
.RE
.RE
.LP
\f4\-G \-\-strip\-debug\fP
.LP
.RS 3

.LP
.LP
Strips attributes used for debugging from the output. These include \f2SourceFile\fP, \f2LineNumberTable\fP, \f2LocalVariableTable\fP and \f2LocalVariableTypeTable\fP. Removing these attributes reduces the size of both downloads and installations but reduces the usefulness of debuggers.
.LP
.RE
.LP
\f4\-O \-\-no\-keep\-file\-order\fP
.LP
.RS 3

.LP
.LP
The packer will reorder and transmit all elements. Additionally, the packer may remove JAR directory names. This will reduce the download size; however, certain JAR file optimizations, such as indexing, may not work correctly.
.LP
.RE
.LP
\f4\-Svalue \-\-segment\-limit=\fP\f2value\fP
.LP
.RS 3

.LP
.LP
The value is the estimated target size N (in bytes) of each archive segment. If a single input file requires
.br
more than N bytes, it will be given its own archive segment. As a special case, a value of \f2\-1\fP will produce a single large segment with all input files, while a value of \f20\fP will produce one segment for each class. Larger archive segments result in less fragmentation and better compression, but processing them requires more memory.
.LP
.LP
The size of each segment is estimated by counting the size of each input file to be transmitted in the segment, along with the size of its name and other transmitted properties.
.LP
.LP
The default is \f21000000\fP (a million bytes). This allows input JAR files of moderate size to be transmitted in one segment. It also puts a limit on memory requirements for packers and unpackers.
.LP
.LP
A 10MB JAR packed without this limit will typically pack about 10% smaller, but the packer may require a larger Java heap (about ten times the segment limit).
.LP
.RE
.LP
\f4\-Evalue \-\-effort=\fP\f2value\fP
.LP
.RS 3

.LP
.LP
If the value is set to a single decimal digit, the packer will use the indicated amount of effort in compressing the archive. Level \f21\fP may produce somewhat larger size and faster compression speed, while level \f29\fP will take much longer but may produce better compression. The special value \f20\fP instructs the packer to copy through the original JAR file directly with no compression. The JSR 200 standard requires any unpacker to understand this special case as a pass\-through of the entire archive.
.LP
.LP
The default is \f25\fP, investing a modest amount of time to produce reasonable compression.
.LP
.RE
.LP
\f4\-Hvalue \-\-deflate\-hint=\fP\f2value\fP
.LP
.RS 3

.LP
.LP
Overrides the default, which preserves the input information, but may cause the transmitted archive to be larger. The possible values are:
.LP
.TP 3
true 
.TP 3
false 
In either case, the packer will set the deflation hint accordingly in the output archive, and will not transmit the individual deflation hints of archive elements. 
.LP
.TP 3
keep 
Preserve deflation hints observed in the input JAR. (This is the default.) 
.LP
.RE
.LP
\f4\-mvalue \-\-modification\-time=\fP\f2value\fP
.LP
.RS 3

.LP
.LP
The possible values are:
.LP
.TP 3
latest 
The packer will attempt to determine the latest modification time, among all the available entries in the original archive, or the latest modification time of all the available entries in that segment. This single value will be transmitted as part of the segment and applied to all the entries in each segment. This can marginally decrease the transmitted size of the archive at the expense of setting all installed files to a single date. 
.TP 3
keep 
Preserves modification times observed in the input JAR. (This is the default.) 
.LP
.RE
.LP
\f4\-Pfile \-\-pass\-file=\fP\f2file\fP
.LP
.RS 3

.LP
.LP
Indicates that a file should be passed through bytewise with no compression. By repeating the option, multiple files may be specified. There is no pathname transformation, except that the system file separator is replaced by the JAR file separator "\f2/\fP". The resulting file names must match exactly as strings with their occurrences in the JAR file. If file is a directory name, all files under that directory will be passed.
.LP
.RE
.LP
\f4\-Uaction \-\-unknown\-attribute=\fP\f2action\fP
.LP
.RS 3

.LP
.LP
Overrides the default behavior; i.e., the classfile containing the unknown attribute will be passed through with the specified action. The possible values for actions are:
.LP
.TP 3
error 
The \f2pack200\fP operation as a whole will fail with a suitable explanation. 
.TP 3
strip 
The attribute will be dropped. Note: Removing the required VM attributes may cause Class Loader failures. 
.TP 3
pass 
Upon encountering this attribute, the entire class will be transmitted as though it is a resource. 
.LP
.RE
.LP
\f4\-Cattribute\-name=\fP\f2layout\fP \f3\-\-class\-attribute=\fP\f2attribute\-name=action\fP
.br
 \f4\-Fattribute\-name=\fP\f2layout\fP \f3\-\-field\-attribute=\fP\f2attribute\-name=action\fP
.br
 \f4\-Mattribute\-name=\fP\f2layout\fP \f3\-\-method\-attribute=\fP\f2attribute\-name=action\fP
.br
 \f4\-Dattribute\-name=\fP\f2layout\fP \f3\-\-code\-attribute=\fP\f2attribute\-name=action\fP
.LP
.RS 3

.LP
.LP
With the above four options, the attribute layout can be specified for a class entity, such as Class attribute, Field attribute, Method attribute, and Code attribute. The attribute\-name is the name of the attribute for which the layout or action is being defined. The possible values for action are:
.LP
.TP 3
some\-layout\-string 
The layout language is defined in the JSR 200 specification. 
.LP
Example: \f2\-\-class\-attribute=SourceFile=RUH\fP  
.TP 3
error 
Upon encountering this attribute, the pack200 operation will fail with a suitable explanation. 
.TP 3
strip 
Upon encountering this attribute, the attribute will be removed from the output. Note: removing VM\-required attributes may cause Class Loader failures. 
.LP
.LP
Example: \f2\-\-class\-attribute=CompilationID=pass\fP will cause the class file containing this attribute to be passed through without further action by the packer.
.LP
.RE
.LP
\f4\-f\fP\f2 \fP\f2pack.properties\fP \f3\-\-config\-file=\fP\f2pack.properties\fP
.LP
.RS 3

.LP
.LP
A configuration file, containing Java properties to initialize the packer, may be specified on the command line.
.LP
.RS 3

.LP
.LP
\f2% pack200 \-f pack.properties myarchive.pack.gz myarchive.jar\fP
.br
\f2% more pack.properties\fP
.br
\f2# Generic properties for the packer.\fP
.br
\f2modification.time=latest\fP
.br
\f2deflate.hint=false\fP
.br
\f2keep.file.order=false\fP
.br
\f2# This option will cause the files bearing new attributes to\fP
.br
\f2# be reported as an error rather than passed uncompressed.\fP
.br
\f2unknown.attribute=error\fP
.br
\f2# Change the segment limit to be unlimited.\fP
.br
\f2segment.limit=\-1\fP
.LP
.RE
.RE
.RS 3

.LP
.LP
\f4\-v \-\-verbose\fP
.LP
.RS 3

.LP
.LP
Outputs minimal messages. Multiple specification of this option will output more verbose messages.
.LP
.RE
.LP
\f4\-q \-\-quiet\fP
.LP
.RS 3

.LP
.LP
Specifies quiet operation with no messages.
.LP
.RE
.LP
\f4\-lfilename \-\-log\-file=\fP\f2filename\fP
.LP
.RS 3

.LP
.LP
Specifies a log file to output messages.
.LP
.RE
.LP
\f4\-Joption\fP
.LP
.RS 3

.LP
.LP
Passes option to the Java launcher called by \f2pack200\fP. For example, \f2\-J\-Xms48m\fP sets the startup memory to 48 megabytes. Although it does not begin with \f2\-X\fP, it is not a standard option of \f2pack200\fP. It is a common convention for \f2\-J\fP to pass options to the underlying VM executing applications written in Java.
.LP
.RE
.RE
.SH "EXIT STATUS"
.LP

.LP
.LP
The following exit values are returned:
.LP
.RS 3

.LP
.LP
\f2\ 0\fP for successful completion;
.LP
.LP
\f2>0\fP if an error occurs.
.LP
.RE
.SH "SEE ALSO"
.LP
.RS 3
.TP 2
*
unpack200 \- JAR Unpacking Tool 
.TP 2
*
\f2unpack200(1)\fP, \f2jar(1)\fP, \f2jarsigner(1)\fP, \f2attributes(5)\fP man pages 
.TP 2
*
Java SE Documentation 
.TP 2
*
.na
\f2Java Deployment Guide \- Pack200\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/pack200.html 
.TP 2
*
\f2jar\fP \- Java Archive Tool 
.TP 2
*
.na
\f2jarsigner\fP \- JAR Signer tool @
.fi
http://java.sun.com/javase/6/docs/technotes/tools/solaris/jarsigner.html 
.RE

.LP
.SH "NOTES"
.LP

.LP
.LP
This command should not be confused with \f2pack(1)\fP. They are distinctly separate products.
.LP
.LP
The Java SE API Specification provided with the SDK is the superseding authority, in case of discrepancies.
.LP
 
