Synopsis
jar c|t|u|x[f][m][M][0][v] [jar-file] [manifest] [-C directory] [input-files]
jar i [jar-file]
Description
jar is a tool that can
create and manipulate Java Archive ( JAR) files. A JAR file is a ZIP
file that contains Java class files, auxiliary resource files
required by those classes, and optional meta-information. This
meta-information includes a manifest file that lists the contents of
the JAR archive and provides auxiliary information about each file.
The jar command can create JAR files, list the
contents of JAR files, and extract files from a JAR archive. In Java
1.2 and later, it can also add files to an existing archive or update
the manifest file of an archive. In Java 1.3 and later,
jar can also add an index entry to a JAR file.
The syntax of the
jar command is reminiscent of the Unix
tar (tape archive) command. Most options to
jar are specified as a block of concatenated
letters passed as a single argument rather than as individual
command-line arguments. The first letter of the first argument
specifies what action jar is to perform; it is
required. Other letters are optional. The various file arguments
depend on which letters are specified.
As in javac, any command-line argument that
begins with @ is taken to be the name of a file that contains options
or filenames.
Command options
The first letter of the first option
to jar specifies the basic operation
jar is to perform. The available options are:
- c
-
Creates a new JAR archive. A
list of input files and/or directories must be specified as the final
arguments to jar. The newly created JAR file has
a META-INF/MANIFEST.MF file as its first entry.
This automatically created manifest lists the contents of the JAR
file and contains a message digest for each file.
- i
-
Indexes the contents of this JAR file as well as the contents of all
JAR files it refers to in the Class-Path manifest
attribute. The resulting index is stored in the JAR file as
META-INF/INDEX.LIST and can be used by a Java
interpreter or applet viewer to optimize its class and resource
lookup algorithm and avoid downloading unnecessary JAR files. This
i option must be followed by the name of the JAR
file to be indexed. No other options are allowed. Java 1.3 and later.
- t
-
Lists the contents of a JAR archive.
- u
-
Updates the contents of a JAR archive. Any files listed on the
command line are added to the archive. When used with the
m option, this adds the specified manifest
information to the JAR file. Java 1.2 and later.
- x
-
Extracts the contents of a JAR archive. The files and directories
specified on the command line are extracted and created in the
current working directory. If no file or directory names are
specified, all the files and directories in the JAR file are
extracted.
Modifier options
Each of the four command specifier
letters can be followed by additional letters that provide further
detail about the operation to be performed:
- f
-
Indicates that jar is to operate on a JAR file
whose name is specified on the command line. If this option is not
present, jar reads a JAR file from standard
input and/or writes a JAR file to standard output. If the
f option is present, the command line must contain
the name of the JAR file to operate
on.
- m
-
When jar creates or updates a JAR file, it
automatically creates (or updates) a manifest file named
META-INF/MANIFEST.MF in the JAR archive. This
default manifest simply lists the contents of the JAR file. Many JAR
files require additional information to be specified in the manifest;
the m option tells the jar
command that a manifest template is specified on the command line.
jar reads this manifest file and stores all the
information it contains into the
META-INF/MANIFEST.MF file it creates. This
m option should be used only with the
c or u commands, not with the
t or x commands.
- M
-
Used with the c and u commands
to tell jar not to create a default manifest
file.
- v
-
Tells jar to produce verbose output.
- 0
-
Used with the c and
u commands to tell jar to
store files in the JAR archive without compressing them. Note that
this option is the digit zero, not the letter O.
Files
The first
option to jar consists of an initial command
letter and various option letters. This first option is followed by a
list of files:
- jar-file
-
If the first option contains the letter f, that
option must be followed by the name of the JAR file to create or
manipulate.
- manifest-file
-
If the
first option contains the letter m, that option
must be followed by the name of the file that contains manifest
information. If the first option contains both the letters
f and m, the JAR and manifest
files should be listed in the same order the f and
m options appear. jar
automatically creates a manifest for the JAR file it creates unless
the M option is specified. The
manifest-file specified with the
m option should contain additional manifest
entries to be placed in the manifest in addition to the automatically
generated entries.
- files
-
The list of one or more files and/or directories to be inserted into
or extracted from the JAR archive.
Additional options
In addition to all the options listed previously,
jar also supports the following:
- -C dir
-
Used within the list of files to process; it tells
jar to change to the specified
dir while processing the subsequent files
and directories. The subsequent file and directory names are
interpreted relative to dir and are
inserted into the JAR archive without dir
as a prefix. Any number of -C options can be used;
each remains in effect until the next is encountered. The directory
specified by a -C option is interpreted relative
to the current working directory, not the directory specified by the
previous -C option. Java 1.2 and later.
- -J javaopt
-
Passes the option javaopt to the Java
interpreter.
Examples
The
jar command has a confusing array of options,
but, in most cases, its use is quite simple. To create a simple JAR
file that contains all the class files in the current directory and
all files in a subdirectory called images, you
can type:
% jar cf my.jar *.class images
To verbosely list the contents of a JAR archive:
% jar tvf your.jar
To extract the manifest file from a JAR file for examination or
editing:
% jar xf the.jar META-INF/MANIFEST.MF
To update the manifest of a JAR file:
% jar ufm my.jar manifest.template
See also
jarsigner
|