jdk/src/linux/doc/man/jar.1
author jjg
Tue, 11 Mar 2008 13:14:55 -0700
changeset 168 25697c18650b
parent 2 90ce3da70b43
child 2692 345bc8d65b19
permissions -rw-r--r--
6307187: clean up code for -Xlint:options Summary: introduce common code for handling one-of and any-of options Reviewed-by: mcimadamore
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     1
.'" t
90ce3da70b43 Initial load
duke
parents:
diff changeset
     2
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
." Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     4
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     5
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
     6
." This code is free software; you can redistribute it and/or modify it
90ce3da70b43 Initial load
duke
parents:
diff changeset
     7
." under the terms of the GNU General Public License version 2 only, as
90ce3da70b43 Initial load
duke
parents:
diff changeset
     8
." published by the Free Software Foundation.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     9
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
    10
." This code is distributed in the hope that it will be useful, but WITHOUT
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    12
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
90ce3da70b43 Initial load
duke
parents:
diff changeset
    13
." version 2 for more details (a copy is included in the LICENSE file that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
." accompanied this code).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
." You should have received a copy of the GNU General Public License version
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
." 2 along with this work; if not, write to the Free Software Foundation,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    18
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    19
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
    20
." Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    21
." CA 95054 USA or visit www.sun.com if you need additional information or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    22
." have any questions.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    23
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
    24
." `
90ce3da70b43 Initial load
duke
parents:
diff changeset
    25
.TH jar 1 "05 Aug 2006"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    26
." Generated by html2roff
90ce3da70b43 Initial load
duke
parents:
diff changeset
    27
.\\"  Created by: Susan Keohan 30\-Oct\-1996 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    28
.\\"  Updated by: Beth Stearns 18\-Nov\-1996 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    29
.\\"  Updated by: Marianne Mueller 11\-Dec\-1996 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
.\\"  Updated by: Douglas Kramer 01\-Jul\-2003 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    31
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    32
.SH NAME
90ce3da70b43 Initial load
duke
parents:
diff changeset
    33
jar\-The Java Archive Tool
90ce3da70b43 Initial load
duke
parents:
diff changeset
    34
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    35
\f3jar\fP combines multiple files into a single JAR archive file.   
90ce3da70b43 Initial load
duke
parents:
diff changeset
    36
.SH "SYNOPSIS"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    37
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    38
90ce3da70b43 Initial load
duke
parents:
diff changeset
    39
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    40
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    41
Create jar file 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    42
\f4jar c\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    43
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    44
Update jar file 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    45
\f4jar u\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    46
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    47
Extract jar file 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    48
\f4jar x\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    49
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    50
List table of contents of jar file 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    51
\f4jar t\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    52
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    53
Add index to jar file 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    54
\f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    55
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    56
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    57
where:
90ce3da70b43 Initial load
duke
parents:
diff changeset
    58
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    59
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    60
90ce3da70b43 Initial load
duke
parents:
diff changeset
    61
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    62
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    63
cuxtiv0Mmfe 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    64
Options that control the \f2jar\fP command. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    65
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    66
 jarfile 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    67
Jar file to be created (\f2c\fP), updated (\f2u\fP), extracted (\f2x\fP), or have its table of contents viewed (\f2t\fP). The \f2\-f\fP option and filename \f2jarfile\fP are a pair \-\- if either is present, they must both appear. Note that omitting \f2f\fP and \f2jarfile\fP accepts a "jar file" from standard input (for x and t) or sends the "jar file" to standard output (for c and u). 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    68
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    69
90ce3da70b43 Initial load
duke
parents:
diff changeset
    70
inputfiles 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    71
Files or directories, separated by spaces, to be combined into \f2jarfile\fP (for c and u), or to be extracted (for x) or listed (for t) from \f2jarfile\fP. All directories are processed recursively. The files are compressed unless option \f20\fP (zero) is used. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    72
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    73
 manifest 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    74
Pre\-existing manifest file whose \f2name\fP\f2:\fP \f2value\fP pairs are to be included in MANIFEST.MF in the jar file. The \f2\-m\fP option and filename \f2manifest\fP are a pair \-\- if either is present, they must both appear. The letters \f3m\fP, \f3f\fP and \f3e\fP must appear in the same order that \f2manifest\fP, \f2jarfile\fP, \f2entrypoint\fP appear. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    75
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    76
90ce3da70b43 Initial load
duke
parents:
diff changeset
    77
entrypoint 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    78
The name of the class that set as the application entry point for stand\-alone applications bundled into executable jar file. The \f2\-e\fP option and entrypoint are a pair \-\- if either is present, they must both appear. The letters \f3m\fP, \f3f\fP and \f3e\fP must appear in the same order that \f2manifest\fP, \f2jarfile\fP, \f2entrypoint\fP appear. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    79
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    80
\-C\ dir 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    81
Temporarily changes directories to \f2dir\fP while processing the following \f2inputfiles\fP argument. Multiple \f2\-C\ \fP\f2dir\fP \f2inputfiles\fP sets are allowed. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    82
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    83
\-Joption 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    84
Option to be passed into the Java runtime environment. (There must be no space between \f2\-J\fP and \f2option\fP). 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    85
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    86
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
    87
.SH "DESCRIPTION"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    88
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    89
90ce3da70b43 Initial load
duke
parents:
diff changeset
    90
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    91
The \f3jar\fP tool combines multiple files into a single JAR archive file. \f3jar\fP is a general\-purpose archiving and compression tool, based on ZIP and the 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    92
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
    93
\f2ZLIB\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
    94
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
    95
http://www.gzip.org/zlib/ compression format. However, \f3jar\fP was designed mainly package java applets or applications into a single archive. When the components of an applet or application (files, images and sounds) are combined into a single archive, they can be downloaded by a java agent (like a browser) in a single HTTP transaction, rather than requiring a new connection for each piece. This dramatically improves download times. \f3jar\fP also compresses files and so further improves download time. In addition, it allows individual entries in a file to be signed by the applet author so that their origin can be authenticated. The syntax for the jar tool is almost identical to the syntax for the \f2tar\fP command. A \f3jar\fP archive can be used as a 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    96
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
    97
\f2class path\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
    98
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
    99
http://ccc.sfbay/4291383/attachment/classpath.html entry, whether or not it is compressed. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   100
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   101
Typical usage to combine files into a jar file is:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   102
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   103
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   104
90ce3da70b43 Initial load
duke
parents:
diff changeset
   105
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   106
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   107
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   108
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   109
% jar cf myFile.jar *.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   110
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   111
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   112
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   113
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   114
90ce3da70b43 Initial load
duke
parents:
diff changeset
   115
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   116
In this example, all the class files in the current directory are placed into the file named \f2myFile.jar\fP. The jar tool automatically generates a manifest file entry named \f2META\-INF/MANIFEST.MF\fP. It is always the first entry in the jar file. The manifest file declares meta\-information about the archive, and stores that data as \f2name\ :\ value\fP pairs. Refer to the 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   117
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   118
\f2JAR file specification\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   119
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   120
http://ccc.sfbay/guide/jar/jar.html#JAR%20Manifest for details explaining how the jar tool stores meta\-information in the manifest file. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   121
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   122
If a jar file should include \f2name\ :\ value\fP pairs contained in an existing manifest file, specify that file using the \f2\-m\fP option:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   123
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   124
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   125
90ce3da70b43 Initial load
duke
parents:
diff changeset
   126
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   127
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   128
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   129
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   130
% jar cmf myManifestFile myFile.jar *.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   131
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   132
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   133
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   134
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   135
90ce3da70b43 Initial load
duke
parents:
diff changeset
   136
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   137
An existing manifest file must end with a new line character.\  \f3jar\fP does not parse the last line of a manifest file if it does not end with a new line character.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   138
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   139
90ce3da70b43 Initial load
duke
parents:
diff changeset
   140
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   141
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   142
90ce3da70b43 Initial load
duke
parents:
diff changeset
   143
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   144
\f3Note:\ \fP A jar command that specifies \f2cfm\fP on the command line instead of \f2cmf\fP (the order of the m and \-f options are reversed), the \f3jar\fP command line must specify the name of the jar archive first, followed by the name of the manifest file: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   145
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   146
90ce3da70b43 Initial load
duke
parents:
diff changeset
   147
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   148
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   149
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   150
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   151
% jar cfm myFile.jar myManifestFile *.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   152
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   153
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   154
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   155
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   156
90ce3da70b43 Initial load
duke
parents:
diff changeset
   157
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   158
The manifest is in a text format inspired by RFC822 ASCII format, so it is easy to view and process manifest\-file contents. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   159
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   160
To extract the files from a jar file, use \f2x\fP:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   161
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   162
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   163
90ce3da70b43 Initial load
duke
parents:
diff changeset
   164
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   165
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   166
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   167
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   168
% jar xf myFile.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   169
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   170
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   171
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   172
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   173
90ce3da70b43 Initial load
duke
parents:
diff changeset
   174
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   175
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   176
To extract individual files from a jar file, supply their filenames:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   177
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   178
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   179
90ce3da70b43 Initial load
duke
parents:
diff changeset
   180
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   181
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   182
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   183
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   184
% jar xf myFile.jar foo bar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   185
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   186
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   187
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   188
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   189
90ce3da70b43 Initial load
duke
parents:
diff changeset
   190
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   191
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   192
Beginning with version 1.3 of the Java 2 SDK, the \f2jar\fP utility supports 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   193
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   194
\f2JarIndex\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   195
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   196
http://ccc.sfbay/guide/jar/jar.html#JAR%20Index, which allows application class loaders to load classes more efficiently from jar files. If an application or applet is bundled into multiple jar files,\  only the necessary jar files will be downloaded and opened to load classes. This performance optimization is enabled by running \f2jar\fP with the \f2\-i\fPoption. It will generate package location information for the specified main jar file and all the jar files it depends on, which need to be specified in the \f2Class\-Path\fP attribute of the main jar file's manifest.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   197
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   198
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   199
90ce3da70b43 Initial load
duke
parents:
diff changeset
   200
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   201
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   202
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   203
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   204
% jar i main.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   205
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   206
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   207
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   208
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   209
90ce3da70b43 Initial load
duke
parents:
diff changeset
   210
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   211
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   212
In this example, an \f2INDEX.LIST\fP file is inserted into the \f2META\-INF\fP directory of \f2main.jar\fP.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   213
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   214
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   215
The application class loader uses the information stored in this file for efficient class loading.\  For details about how location information is stored in the index file, refer to the \f2JarIndex\fP specification.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   216
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   217
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   218
To copy directories, first compress files in \f2dir1\fP to \f2stdout\fP, then extract from \f2stdin\fP to \f2dir2\fP (omitting the \f2\-f\fP option from both \f2jar\fP commands):
90ce3da70b43 Initial load
duke
parents:
diff changeset
   219
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   220
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   221
90ce3da70b43 Initial load
duke
parents:
diff changeset
   222
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   223
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   224
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   225
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   226
% (cd dir1; jar c .) | (cd dir2; jar x)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   227
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   228
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   229
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   230
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   231
90ce3da70b43 Initial load
duke
parents:
diff changeset
   232
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   233
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   234
To review command samples which use \f2jar\fP to opeate on jar files and jar file manifests, see Examples, below. Also refer to the jar trail of the 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   235
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   236
\f2Java Tutorial\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   237
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   238
http://java.sun.com/docs/books/tutorial/jar.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   239
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   240
.SH "OPTIONS"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   241
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   242
90ce3da70b43 Initial load
duke
parents:
diff changeset
   243
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   244
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   245
c 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   246
Creates a new archive file named \f2jarfile\fP (if \f2f\fP is specified) or to standard output (if \f2f\fP and \f2jarfile\fP are omitted). Add to it the files and directories specified by \f2inputfiles\fP. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   247
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   248
u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   249
Updates an existing file \f2jarfile\fP (when \f2f\fP is specified) by adding to it files and directories specified by \f2inputfiles\fP. For example: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   250
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   251
90ce3da70b43 Initial load
duke
parents:
diff changeset
   252
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   253
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   254
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   255
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   256
jar uf foo.jar foo.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   257
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   258
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   259
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   260
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   261
would add the file \f2foo.class\fP to the existing jar file \f2foo.jar\fP. The \f2\-u\fP option can also update the manifest entry, as given by this example: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   262
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   263
90ce3da70b43 Initial load
duke
parents:
diff changeset
   264
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   265
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   266
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   267
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   268
jar umf manifest foo.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   269
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   270
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   271
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   272
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   273
updates the \f2foo.jar\fP manifest with the \f2name : value\fP pairs in \f2manifest\fP. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   274
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   275
x 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   276
Extracts files and directories from \f2jarfile\fP (if \f2f\fP is specified) or standard input (if \f2f\fP and \f2jarfile\fP are omitted). If \f2inputfiles\fP is specified, only those specified files and directories are extracted. Otherwise, all files and directories are extracted. The time and date of the extracted files are those given in the archive. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   277
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   278
t 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   279
Lists the table of contents from \f2jarfile\fP (if \f2f\fP is specified) or standard input (if \f2f\fP and \f2jarfile\fP are omitted). If \f2inputfiles\fP is specified, only those specified files and directories are listed. Otherwise, all files and directories are listed. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   280
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   281
i 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   282
Generate index information for the specified \f2jarfile\fP and its dependent jar files. For example: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   283
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   284
90ce3da70b43 Initial load
duke
parents:
diff changeset
   285
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   286
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   287
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   288
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   289
jar i foo.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   290
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   291
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   292
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   293
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   294
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   295
would generate an \f2INDEX.LIST\fP file in \f2foo.jar\fP which contains location information for each package in \f2foo.jar\fP and all the jar files specified in the \f2Class\-Path\fP attribute of \f2foo.jar\fP. See the index example.   
90ce3da70b43 Initial load
duke
parents:
diff changeset
   296
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   297
f 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   298
Specifies the file \f2jarfile\fP to be created (\f2c\fP), updated (\f2u\fP), extracted (\f2x\fP), indexed (\f2i\fP), or viewed (\f2t\fP). The \f2\-f\fP option and filename \f2jarfile\fP are a pair \-\- if present, they must both appear. Omitting \f2f\fP and \f2jarfile\fP accepts a jar file name from \f2stdin\fP(for x and t) or sends jar file to \f2stdout\fP (for c and u). 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   299
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   300
v 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   301
Generates verbose output to standard output. Examples shown below. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   302
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   303
0 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   304
(zero) Store without using ZIP compression. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   305
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   306
M 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   307
Do not create a manifest file entry (for c and u), or delete a manifest file entry if one exists (for u). 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   308
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   309
m 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   310
Includes \f2name : value\fP attribute pairs from the specified manifest file \f2manifest\fP in the file at \f2META\-INF/MANIFEST.MF\fP. \f2jar\fP adds a \f2name\ :\ value\fP pair unless an entry already exists with the same name, in which case \f2jar\fP updates its value. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   311
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   312
On the command line, the letters \f3m\fP and \f3f\fP must appear in the same order that \f2manifest\fP and \f2jarfile\fP appear. Example use: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   313
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   314
90ce3da70b43 Initial load
duke
parents:
diff changeset
   315
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   316
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   317
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   318
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   319
jar cmf myManifestFile myFile.jar *.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   320
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   321
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   322
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   323
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   324
You can add special\-purpose \f2name\ :\ value\fP attribute pairs to the manifest that aren't contained in the default manifest. For example, you can add attributes specifying vendor information, version information, package sealing, or to make JAR\-bundled applications executable. See the 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   325
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   326
\f2JAR Files\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   327
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   328
http://java.sun.com/docs/books/tutorial/jar/ trail in the Java Tutorial  for examples of using the \f4\-m\fP option. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   329
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   330
e 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   331
Sets \f2entrypoint\fP as the application entry point for stand\-alone applications bundled into executable jar file. The use of this option creates or overrides the \f2Main\-Class\fP attribute value in the manifest file. This option can be used during creation of jar file or while updating the jar file. This option specifies the application entry point without editing or creating the manifest file.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   332
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   333
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   334
For example, this command creates \f2Main.jar\fP where the \f2Main\-Class\fP attribute value in the manifest is set to \f2Main\fP: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   335
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   336
90ce3da70b43 Initial load
duke
parents:
diff changeset
   337
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   338
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   339
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   340
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   341
jar cfe Main.jar Main Main.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   342
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   343
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   344
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   345
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   346
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   347
The java runtime can directly invoke this application by running the following command: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   348
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   349
90ce3da70b43 Initial load
duke
parents:
diff changeset
   350
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   351
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   352
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   353
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   354
java \-jar Main.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   355
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   356
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   357
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   358
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   359
If the entrypoint class name is in a package it may use either a dot (".") or slash ("/") character as the delimiter. For example, if \f2Main.class\fP is in a package called \f2foo\fP the entry point can be specified in the following ways: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   360
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   361
90ce3da70b43 Initial load
duke
parents:
diff changeset
   362
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   363
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   364
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   365
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   366
jar \-cfe Main.jar foo/Main foo/Main.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   367
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   368
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   369
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   370
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   371
or 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   372
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   373
90ce3da70b43 Initial load
duke
parents:
diff changeset
   374
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   375
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   376
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   377
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   378
jar \-cfe Main.jar foo.Main foo/Main.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   379
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   380
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   381
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   382
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   383
\f3Note:\ \fP specifying both \f2\-m\fP and \f2\-e\fP options together when the given manifest also contains the \f2Main\-Class\fP attribute results in an ambigous \f2Main.class\fP specification, leading to an error and the jar creation or update operation is aborted. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   384
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   385
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   386
\-C \ dir 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   387
Temporarily changes directories (\f2cd\fP\ \f2dir\fP) during execution of the \f2jar\fP command while processing the following \f2inputfiles\fP argument. Its operation is intended to be similar to the \f2\-C\fP option of the UNIX \f2tar\fP utility.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   388
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   389
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   390
For example, this command changes to the \f2classes\fP directory and adds the \f2bar.class\fP from that directory to \f2foo.jar\fP: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   391
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   392
90ce3da70b43 Initial load
duke
parents:
diff changeset
   393
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   394
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   395
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   396
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   397
jar uf foo.jar \-C classes bar.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   398
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   399
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   400
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   401
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   402
This command changes to the \f2classes\fP directory and adds to \f2foo.jar\fP all files within the \f2classes\fP directory (without creating a classes directory in the jar file), then changes back to the original directory before changing to the \f2bin\fP directory to add \f2xyz.class\fP to \f2foo.jar\fP. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   403
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   404
90ce3da70b43 Initial load
duke
parents:
diff changeset
   405
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   406
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   407
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   408
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   409
jar uf foo.jar \-C classes . \-C bin xyz.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   410
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   411
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   412
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   413
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   414
If \f2classes\fP holds files \f2bar1\fP and \f2bar2\fP, then here's what the jar file will contain using \f2jar tf foo.jar\fP: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   415
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   416
90ce3da70b43 Initial load
duke
parents:
diff changeset
   417
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   418
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   419
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   420
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   421
META\-INF/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   422
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   423
META\-INF/MANIFEST.MF
90ce3da70b43 Initial load
duke
parents:
diff changeset
   424
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   425
bar1
90ce3da70b43 Initial load
duke
parents:
diff changeset
   426
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   427
bar2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   428
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   429
xyz.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   430
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   431
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   432
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   433
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   434
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   435
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   436
\-Joption 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   437
Pass \f2option\fP to the Java runtime environment, where \f2option\fP is one of the options described on the reference page for the 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   438
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   439
\f2java application launcher\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   440
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   441
http://ccc.sfbay/4291383/attachment/java.html#options. For example, \f4\-J\-Xmx48M\fP sets the maximum memory to 48 megabytes. It is a common convention for \f2\-J\fP to pass options to the underlying runtime environment. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   442
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   443
.SH "COMMAND LINE ARGUMENT FILES"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   444
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   445
90ce3da70b43 Initial load
duke
parents:
diff changeset
   446
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   447
To shorten or simplify the jar command line, you can specify one or more files that themselves contain arguments to the \f2jar\fP command (except \f2\-J\fP options). This enables you to create jar commands of any length, overcoming command line limits imposed by the operating system. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   448
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   449
An argument file can include options and filenames. The arguments within a file can be space–separated or newline\-separated. Filenames within an argument file are relative to the current directory, not relative to the location of the argument file. Wildcards (*) that might otherwise be expanded by the operating system shell are not expanded. Use of the \f2@\fP character to recursively interpret files is not supported. The \f2\-J\fP options are not supported because they are passed to the launcher, which does not support argument files.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   450
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   451
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   452
When executing \f2jar\fP, pass in the path and name of each argument file with the \f2@\fP leading character. When \f2jar\fP encounters an argument beginning with the character \f2@\fP, it expands the contents of that file into the argument list.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   453
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   454
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   455
The example below, \f2classes.list\fP holds the names of files output by a \f2find\fP command: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   456
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   457
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   458
90ce3da70b43 Initial load
duke
parents:
diff changeset
   459
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   460
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   461
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   462
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   463
% find \fP\f3.\fP \-name '*.class' \-print > classes.list
90ce3da70b43 Initial load
duke
parents:
diff changeset
   464
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   465
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   466
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   467
90ce3da70b43 Initial load
duke
parents:
diff changeset
   468
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   469
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   470
You can then execute the \f2jar\fP command on \f2Classes.list\fP by passing it to \f2jar\fP using argfile syntax:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   471
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   472
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   473
90ce3da70b43 Initial load
duke
parents:
diff changeset
   474
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   475
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   476
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   477
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   478
% jar cf my.jar @classes.list
90ce3da70b43 Initial load
duke
parents:
diff changeset
   479
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   480
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   481
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   482
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   483
90ce3da70b43 Initial load
duke
parents:
diff changeset
   484
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   485
An argument file can specify a path, but any filenames inside the argument file that have relative paths are relative to the current working directory, not to the path passed in. Here is an example: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   486
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   487
90ce3da70b43 Initial load
duke
parents:
diff changeset
   488
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   489
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   490
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   491
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   492
% jar @path1/classes.list
90ce3da70b43 Initial load
duke
parents:
diff changeset
   493
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   494
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   495
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   496
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   497
90ce3da70b43 Initial load
duke
parents:
diff changeset
   498
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   499
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   500
90ce3da70b43 Initial load
duke
parents:
diff changeset
   501
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   502
.SH "EXAMPLES"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   503
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   504
90ce3da70b43 Initial load
duke
parents:
diff changeset
   505
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   506
To add all the files in a particular directory to an archive (overwriting contents if the archive already exists). Enumerating verbosely (with the \f2\-v\fP option) will tell you more information about the files in the archive, such as their size and last modified date. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   507
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   508
90ce3da70b43 Initial load
duke
parents:
diff changeset
   509
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   510
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   511
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   512
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   513
% ls
90ce3da70b43 Initial load
duke
parents:
diff changeset
   514
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   515
1.au          Animator.class    monkey.jpg
90ce3da70b43 Initial load
duke
parents:
diff changeset
   516
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   517
2.au          Wave.class        spacemusic.au
90ce3da70b43 Initial load
duke
parents:
diff changeset
   518
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   519
3.au          at_work.gif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   520
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   521
90ce3da70b43 Initial load
duke
parents:
diff changeset
   522
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   523
% jar cvf bundle.jar *
90ce3da70b43 Initial load
duke
parents:
diff changeset
   524
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   525
added manifest
90ce3da70b43 Initial load
duke
parents:
diff changeset
   526
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   527
adding: 1.au(in = 2324) (out= 67)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   528
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   529
adding: 2.au(in = 6970) (out= 90)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   530
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   531
adding: 3.au(in = 11616) (out= 108)(deflated 99%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   532
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   533
adding: Animator.class(in = 2266) (out= 66)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   534
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   535
adding: Wave.class(in = 3778) (out= 81)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   536
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   537
adding: at_work.gif(in = 6621) (out= 89)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   538
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   539
adding: monkey.jpg(in = 7667) (out= 91)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   540
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   541
adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   542
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   543
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   544
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   545
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   546
90ce3da70b43 Initial load
duke
parents:
diff changeset
   547
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   548
If you already have separate subdirectories for images, audio files and classes, you can combine them into a single jar file: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   549
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   550
90ce3da70b43 Initial load
duke
parents:
diff changeset
   551
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   552
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   553
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   554
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   555
% ls \-F
90ce3da70b43 Initial load
duke
parents:
diff changeset
   556
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   557
audio/ classes/ images/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   558
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   559
90ce3da70b43 Initial load
duke
parents:
diff changeset
   560
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   561
% jar cvf bundle.jar audio classes images
90ce3da70b43 Initial load
duke
parents:
diff changeset
   562
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   563
added manifest
90ce3da70b43 Initial load
duke
parents:
diff changeset
   564
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   565
adding: audio/(in = 0) (out= 0)(stored 0%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   566
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   567
adding: audio/1.au(in = 2324) (out= 67)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   568
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   569
adding: audio/2.au(in = 6970) (out= 90)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   570
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   571
adding: audio/3.au(in = 11616) (out= 108)(deflated 99%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   572
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   573
adding: audio/spacemusic.au(in = 3079) (out= 73)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   574
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   575
adding: classes/(in = 0) (out= 0)(stored 0%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   576
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   577
adding: classes/Animator.class(in = 2266) (out= 66)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   578
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   579
adding: classes/Wave.class(in = 3778) (out= 81)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   580
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   581
adding: images/(in = 0) (out= 0)(stored 0%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   582
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   583
adding: images/monkey.jpg(in = 7667) (out= 91)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   584
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   585
adding: images/at_work.gif(in = 6621) (out= 89)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   586
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   587
90ce3da70b43 Initial load
duke
parents:
diff changeset
   588
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   589
% ls \-F
90ce3da70b43 Initial load
duke
parents:
diff changeset
   590
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   591
audio/ bundle.jar classes/ images/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   592
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   593
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   594
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   595
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   596
90ce3da70b43 Initial load
duke
parents:
diff changeset
   597
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   598
To see the entry names in the jarfile, use the \f2t\fP option: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   599
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   600
90ce3da70b43 Initial load
duke
parents:
diff changeset
   601
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   602
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   603
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   604
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   605
% jar tf bundle.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   606
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   607
META\-INF/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   608
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   609
META\-INF/MANIFEST.MF
90ce3da70b43 Initial load
duke
parents:
diff changeset
   610
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   611
audio/1.au
90ce3da70b43 Initial load
duke
parents:
diff changeset
   612
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   613
audio/2.au
90ce3da70b43 Initial load
duke
parents:
diff changeset
   614
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   615
audio/3.au
90ce3da70b43 Initial load
duke
parents:
diff changeset
   616
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   617
audio/spacemusic.au
90ce3da70b43 Initial load
duke
parents:
diff changeset
   618
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   619
classes/Animator.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   620
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   621
classes/Wave.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   622
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   623
images/monkey.jpg
90ce3da70b43 Initial load
duke
parents:
diff changeset
   624
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   625
images/at_work.gif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   626
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   627
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   628
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   629
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   630
90ce3da70b43 Initial load
duke
parents:
diff changeset
   631
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   632
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   633
To add an index file to the jar file for speeding up class loading, use the \f2i\fP option.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   634
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   635
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   636
Example:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   637
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   638
90ce3da70b43 Initial load
duke
parents:
diff changeset
   639
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   640
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   641
90ce3da70b43 Initial load
duke
parents:
diff changeset
   642
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   643
If you split the inter\-dependent classes for a stock trade application into three jar files: \f2main.jar\fP, \f2buy.jar\fP, and \f2sell.jar\fP.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   644
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   645
90ce3da70b43 Initial load
duke
parents:
diff changeset
   646
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   647
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   648
90ce3da70b43 Initial load
duke
parents:
diff changeset
   649
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   650
If you specify the \f2Class\-path\fP attribute in the \f2main.jar\fP manifest as: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   651
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   652
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   653
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   654
Class\-Path: buy.jar sell.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   655
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   656
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   657
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   658
90ce3da70b43 Initial load
duke
parents:
diff changeset
   659
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   660
then you can use the \f2\-i\fP option to speed up the class loading time for your application: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   661
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   662
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   663
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   664
% jar i main.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   665
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   666
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   667
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   668
90ce3da70b43 Initial load
duke
parents:
diff changeset
   669
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   670
An \f2INDEX.LIST\fP file is inserted to the \f2META\-INF\fP directory. This enables the application class loader to download the specified jar files when it is searching for classes or resources.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   671
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   672
.SH "SEE ALSO"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   673
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   674
90ce3da70b43 Initial load
duke
parents:
diff changeset
   675
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   676
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   677
\f2The Jar Overview\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   678
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   679
http://ccc.sfbay/guide/jar/jarGuide.html
90ce3da70b43 Initial load
duke
parents:
diff changeset
   680
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   681
90ce3da70b43 Initial load
duke
parents:
diff changeset
   682
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   683
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   684
\f2The Jar File Specification\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   685
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   686
http://ccc.sfbay/guide/jar/jar.html
90ce3da70b43 Initial load
duke
parents:
diff changeset
   687
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   688
90ce3da70b43 Initial load
duke
parents:
diff changeset
   689
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   690
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   691
\f2The JarIndex Spec\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   692
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   693
http://ccc.sfbay/guide/jar/jar.html#JAR%20Index
90ce3da70b43 Initial load
duke
parents:
diff changeset
   694
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   695
90ce3da70b43 Initial load
duke
parents:
diff changeset
   696
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   697
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   698
\f2Jar Tutorial\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   699
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   700
http://java.sun.com/docs/books/tutorial/jar on the Java Software web site.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   701
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   702
90ce3da70b43 Initial load
duke
parents:
diff changeset
   703
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   704
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   705
\f2pack200 Reference Page\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   706
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   707
http://ccc.sfbay/4291383/share/pack200.html 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   708
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   709