jdk/src/linux/doc/man/jar.1
author sundar
Mon, 27 May 2013 20:41:34 +0530
changeset 17776 59fb7b69846d
parent 9573 c02ff5a7c67b
child 21743 3d979da7bdf0
permissions -rw-r--r--
8015352: "i".toUpperCase() => currently returns "İ", but should be "I" (with Turkish locale) Reviewed-by: jlaskey, lagergren
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
     1
." Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     2
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
     4
." This code is free software; you can redistribute it and/or modify it
90ce3da70b43 Initial load
duke
parents:
diff changeset
     5
." under the terms of the GNU General Public License version 2 only, as
90ce3da70b43 Initial load
duke
parents:
diff changeset
     6
." published by the Free Software Foundation.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     7
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
     8
." This code is distributed in the hope that it will be useful, but WITHOUT
90ce3da70b43 Initial load
duke
parents:
diff changeset
     9
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    10
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
." version 2 for more details (a copy is included in the LICENSE file that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    12
." accompanied this code).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    13
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
." You should have received a copy of the GNU General Public License version
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
." 2 along with this work; if not, write to the Free Software Foundation,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
."
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2692
diff changeset
    18
." Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2692
diff changeset
    19
." or visit www.oracle.com if you need additional information or have any
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2692
diff changeset
    20
." questions.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    21
."
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    22
.TH jar 1 "10 May 2011"
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    23
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    24
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    25
.SH "Name"
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    26
jar\-The Java Archive Tool
90ce3da70b43 Initial load
duke
parents:
diff changeset
    27
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    28
\f3jar\fP combines multiple files into a single JAR archive file.  
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    29
.SH "SYNOPSIS"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    31
.RS 3
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    32
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    33
Create jar file 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    34
\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
    35
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    36
Update jar file 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    37
\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
    38
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    39
Extract jar file 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    40
\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
    41
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    42
List table of contents of jar file 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    43
\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
    44
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    45
Add index to jar file 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    46
\f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP 
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    47
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    48
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    49
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    50
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    51
where:
90ce3da70b43 Initial load
duke
parents:
diff changeset
    52
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    53
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    54
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    55
cuxtiv0Mmfe 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    56
Options that control the \f2jar\fP command. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    57
.TP 3
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    58
jarfile 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    59
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
    60
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    61
inputfiles 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    62
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
    63
.TP 3
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    64
manifest 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    65
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
    66
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    67
entrypoint 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    68
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
    69
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    70
\-C\ dir 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    71
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
    72
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    73
\-Joption 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    74
Option to be passed into the Java runtime environment. (There must be no space between \f2\-J\fP and \f2option\fP). 
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    75
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    76
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    77
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    78
.SH "DESCRIPTION"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    79
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    80
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
    81
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
    82
\f2ZLIB\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
    83
.fi
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    84
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 class path entry, whether or not it is compressed. 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    85
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    86
Typical usage to combine files into a jar file is:
90ce3da70b43 Initial load
duke
parents:
diff changeset
    87
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    88
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
    89
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    90
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
    91
% jar cf myFile.jar *.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
    92
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
    93
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    94
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
    95
90ce3da70b43 Initial load
duke
parents:
diff changeset
    96
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    97
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
    98
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
    99
\f2JAR file specification\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   100
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   101
http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR%20Manifest for details explaining how the jar tool stores meta\-information in the manifest file. 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   102
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   103
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
   104
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   105
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   106
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   107
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   108
% jar cmf myManifestFile myFile.jar *.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   109
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   110
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   111
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   112
90ce3da70b43 Initial load
duke
parents:
diff changeset
   113
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   114
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
   115
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   116
90ce3da70b43 Initial load
duke
parents:
diff changeset
   117
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   118
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   119
90ce3da70b43 Initial load
duke
parents:
diff changeset
   120
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   121
\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
   122
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   123
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   124
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   125
% jar cfm myFile.jar myManifestFile *.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   126
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   127
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   128
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   129
90ce3da70b43 Initial load
duke
parents:
diff changeset
   130
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   131
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
   132
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   133
To extract the files from a jar file, use \f2x\fP:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   134
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   135
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   136
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   137
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   138
% jar xf myFile.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   139
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   140
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   141
.fi
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
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   145
To extract individual files from a jar file, supply their filenames:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   146
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   147
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   148
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   149
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   150
% jar xf myFile.jar foo bar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   151
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   152
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   153
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   154
90ce3da70b43 Initial load
duke
parents:
diff changeset
   155
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   156
.LP
5865
47da38a8c0f0 6955341: Oracle rebranding changes for man pages
bpatel
parents: 5506
diff changeset
   157
Beginning with version 1.3 of the JDK, the \f2jar\fP utility supports 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   158
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   159
\f2JarIndex\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   160
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   161
http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR_Index, 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.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   162
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   163
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   164
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   165
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   166
% jar i main.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   167
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   168
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   169
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   170
90ce3da70b43 Initial load
duke
parents:
diff changeset
   171
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   172
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   173
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
   174
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   175
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   176
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
   177
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   178
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   179
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
   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
% (cd dir1; jar c .) | (cd dir2; jar x)
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
90ce3da70b43 Initial load
duke
parents:
diff changeset
   189
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   190
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   191
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
   192
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   193
\f2Java Tutorial\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   194
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   195
http://download.oracle.com/javase/tutorial/deployment/jar.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   196
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   197
.SH "OPTIONS"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   198
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   199
.RS 3
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   200
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   201
c 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   202
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
   203
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   204
u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   205
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
   206
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   207
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   208
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   209
jar uf foo.jar foo.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   210
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   211
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   212
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   213
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
   214
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   215
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   216
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   217
jar umf manifest foo.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   218
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   219
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   220
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   221
updates the \f2foo.jar\fP manifest with the \f2name : value\fP pairs in \f2manifest\fP. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   222
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   223
x 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   224
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
   225
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   226
t 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   227
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
   228
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   229
i 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   230
Generate index information for the specified \f2jarfile\fP and its dependent jar files. For example: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   231
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   232
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   233
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   234
jar i foo.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   235
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   236
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   237
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   238
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   239
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.  
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   240
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   241
f 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   242
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
   243
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   244
v 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   245
Generates verbose output to standard output. Examples shown below. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   246
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   247
0 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   248
(zero) Store without using ZIP compression. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   249
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   250
M 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   251
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
   252
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   253
m 
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   254
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.
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   255
.br
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   256
.br
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   257
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
   258
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   259
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   260
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   261
jar cmf myManifestFile myFile.jar *.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   262
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   263
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   264
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   265
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
   266
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   267
\f2JAR Files\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   268
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   269
http://download.oracle.com/javase/tutorial/deployment/jar/ trail in the Java Tutorial  for examples of using the \f4\-m\fP option. 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   270
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   271
e 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   272
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
   273
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   274
.br
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   275
.br
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   276
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
   277
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   278
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   279
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   280
jar cfe Main.jar Main Main.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   281
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   282
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   283
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   284
The java runtime can directly invoke this application by running the following command: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   285
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   286
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   287
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   288
java \-jar Main.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   289
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   290
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   291
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   292
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
   293
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   294
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   295
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   296
jar \-cfe Main.jar foo/Main foo/Main.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   297
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   298
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   299
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   300
or 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   301
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   302
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   303
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   304
jar \-cfe Main.jar foo.Main foo/Main.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   305
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   306
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   307
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   308
\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.  
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   309
.TP 3
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   310
\-C\ dir 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   311
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
   312
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   313
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   314
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
   315
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   316
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   317
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   318
jar uf foo.jar \-C classes bar.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   319
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   320
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   321
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   322
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
   323
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   324
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   325
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   326
jar uf foo.jar \-C classes . \-C bin xyz.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   327
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   328
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   329
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   330
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
   331
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   332
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   333
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   334
META\-INF/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   335
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   336
META\-INF/MANIFEST.MF
90ce3da70b43 Initial load
duke
parents:
diff changeset
   337
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   338
bar1
90ce3da70b43 Initial load
duke
parents:
diff changeset
   339
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   340
bar2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   341
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   342
xyz.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   343
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   344
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   345
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   346
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   347
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   348
\-Joption 
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   349
Pass \f2option\fP to the Java runtime environment, where \f2option\fP is one of the options described on the reference page for the java application launcher. 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. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   350
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   351
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   352
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   353
.SH "COMMAND LINE ARGUMENT FILES"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   354
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   355
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
   356
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   357
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.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   358
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   359
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   360
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
   361
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   362
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   363
The example below, \f2classes.list\fP holds the names of files output by a \f2find\fP command: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   364
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   365
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   366
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   367
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   368
% find \fP\f3.\fP \-name '*.class' \-print > classes.list
90ce3da70b43 Initial load
duke
parents:
diff changeset
   369
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   370
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   371
90ce3da70b43 Initial load
duke
parents:
diff changeset
   372
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   373
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   374
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
   375
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   376
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   377
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   378
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   379
% jar cf my.jar @classes.list
90ce3da70b43 Initial load
duke
parents:
diff changeset
   380
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   381
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   382
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   383
90ce3da70b43 Initial load
duke
parents:
diff changeset
   384
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   385
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
   386
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   387
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   388
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   389
% jar @path1/classes.list
90ce3da70b43 Initial load
duke
parents:
diff changeset
   390
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   391
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   392
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   393
90ce3da70b43 Initial load
duke
parents:
diff changeset
   394
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   395
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   396
90ce3da70b43 Initial load
duke
parents:
diff changeset
   397
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   398
.SH "EXAMPLES"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   399
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   400
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
   401
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   402
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   403
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   404
% ls
90ce3da70b43 Initial load
duke
parents:
diff changeset
   405
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   406
1.au          Animator.class    monkey.jpg
90ce3da70b43 Initial load
duke
parents:
diff changeset
   407
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   408
2.au          Wave.class        spacemusic.au
90ce3da70b43 Initial load
duke
parents:
diff changeset
   409
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   410
3.au          at_work.gif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   411
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   412
90ce3da70b43 Initial load
duke
parents:
diff changeset
   413
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   414
% jar cvf bundle.jar *
90ce3da70b43 Initial load
duke
parents:
diff changeset
   415
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   416
added manifest
90ce3da70b43 Initial load
duke
parents:
diff changeset
   417
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   418
adding: 1.au(in = 2324) (out= 67)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   419
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   420
adding: 2.au(in = 6970) (out= 90)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   421
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   422
adding: 3.au(in = 11616) (out= 108)(deflated 99%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   423
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   424
adding: Animator.class(in = 2266) (out= 66)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   425
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   426
adding: Wave.class(in = 3778) (out= 81)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   427
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   428
adding: at_work.gif(in = 6621) (out= 89)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   429
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   430
adding: monkey.jpg(in = 7667) (out= 91)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   431
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   432
adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   433
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   434
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   435
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   436
90ce3da70b43 Initial load
duke
parents:
diff changeset
   437
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   438
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
   439
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   440
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   441
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   442
% ls \-F
90ce3da70b43 Initial load
duke
parents:
diff changeset
   443
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   444
audio/ classes/ images/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   445
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   446
90ce3da70b43 Initial load
duke
parents:
diff changeset
   447
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   448
% jar cvf bundle.jar audio classes images
90ce3da70b43 Initial load
duke
parents:
diff changeset
   449
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   450
added manifest
90ce3da70b43 Initial load
duke
parents:
diff changeset
   451
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   452
adding: audio/(in = 0) (out= 0)(stored 0%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   453
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   454
adding: audio/1.au(in = 2324) (out= 67)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   455
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   456
adding: audio/2.au(in = 6970) (out= 90)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   457
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   458
adding: audio/3.au(in = 11616) (out= 108)(deflated 99%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   459
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   460
adding: audio/spacemusic.au(in = 3079) (out= 73)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   461
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   462
adding: classes/(in = 0) (out= 0)(stored 0%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   463
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   464
adding: classes/Animator.class(in = 2266) (out= 66)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   465
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   466
adding: classes/Wave.class(in = 3778) (out= 81)(deflated 97%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   467
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   468
adding: images/(in = 0) (out= 0)(stored 0%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   469
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   470
adding: images/monkey.jpg(in = 7667) (out= 91)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   471
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   472
adding: images/at_work.gif(in = 6621) (out= 89)(deflated 98%)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   473
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   474
90ce3da70b43 Initial load
duke
parents:
diff changeset
   475
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   476
% ls \-F
90ce3da70b43 Initial load
duke
parents:
diff changeset
   477
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   478
audio/ bundle.jar classes/ images/
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
90ce3da70b43 Initial load
duke
parents:
diff changeset
   483
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   484
To see the entry names in the jarfile, use the \f2t\fP option: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   485
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   486
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   487
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   488
% jar tf bundle.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   489
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   490
META\-INF/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   491
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   492
META\-INF/MANIFEST.MF
90ce3da70b43 Initial load
duke
parents:
diff changeset
   493
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   494
audio/1.au
90ce3da70b43 Initial load
duke
parents:
diff changeset
   495
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   496
audio/2.au
90ce3da70b43 Initial load
duke
parents:
diff changeset
   497
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   498
audio/3.au
90ce3da70b43 Initial load
duke
parents:
diff changeset
   499
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   500
audio/spacemusic.au
90ce3da70b43 Initial load
duke
parents:
diff changeset
   501
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   502
classes/Animator.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   503
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   504
classes/Wave.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   505
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   506
images/monkey.jpg
90ce3da70b43 Initial load
duke
parents:
diff changeset
   507
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   508
images/at_work.gif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   509
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   510
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   511
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   512
90ce3da70b43 Initial load
duke
parents:
diff changeset
   513
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   514
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   515
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
   516
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   517
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   518
Example:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   519
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   520
90ce3da70b43 Initial load
duke
parents:
diff changeset
   521
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   522
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
   523
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   524
90ce3da70b43 Initial load
duke
parents:
diff changeset
   525
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   526
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   527
90ce3da70b43 Initial load
duke
parents:
diff changeset
   528
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   529
If you specify the \f2Class\-path\fP attribute in the \f2main.jar\fP manifest as: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   530
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   531
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   532
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   533
Class\-Path: buy.jar sell.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   534
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   535
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   536
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   537
90ce3da70b43 Initial load
duke
parents:
diff changeset
   538
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   539
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
   540
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   541
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   542
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   543
% jar i main.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   544
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   545
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   546
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   547
90ce3da70b43 Initial load
duke
parents:
diff changeset
   548
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   549
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.  
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   550
.SH "SEE ALSO"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   551
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   552
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   553
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   554
\f2The Jar Overview\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   555
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   556
http://download.oracle.com/javase/7/docs/technotes/guides/jar/jarGuide.html
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   557
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   558
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   559
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   560
\f2The Jar File Specification\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   561
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   562
http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   563
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   564
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   565
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   566
\f2The JarIndex Spec\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   567
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   568
http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR_Index
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   569
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   570
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   571
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   572
\f2Jar Tutorial\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
   573
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   574
http://download.oracle.com/javase/tutorial/deployment/jar/index.html
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   575
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   576
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   577
pack200(1)
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   578
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   579