|
Book Excerpt Index
The Jar tool in version 1.2 of the Java
Development Kit provides a u option which you can use to
update the contents of an existing JAR file by modifying its
manifest or by adding files.
The basic command for adding files has this format:
jar uf jar-file input-file(s)
In this command:
- The
u option indicates that you want to update
an existing JAR file.
- The
f option indicates that the JAR file to update is
specified on the command line. If the f option is not
present, the Jar tool will expect a JAR filename on stdin.
jar-file is the existing JAR file that's to be updated.
input-file(s) is a space-deliminated list of one or
more files that you want to add to the Jar file.
Any files already in the archive having the same pathname as a file
being added will be overwritten.
As when creating a new JAR file, you can
optionally use the -C option to indicate a change of directory.
You can combine the u option with the m option to
update an existing JAR file's manifest:
jar umf manifest jar-file
In this command:
- The
m option indicates that you want to update the
JAR file's manifest.
manifest is the manifest whose contents you want to
merge into the manifest of the existing JAR file.
Examples
Recall that TicTacToe.jar has these contents:
META-INF/MANIFEST.MF
TicTacToe.class
audio/
audio/beep.au
audio/ding.au
audio/return.au
audio/yahoo1.au
audio/yahoo2.au
images/
images/cross.gif
images/not.gif
|
Suppose that you want to add the file images/new.gif to the
JAR file. You could accomplish that by issuing this command from
the parent directory of the images directory:
jar uf TicTacToe.jar images/new.gif
The revised JAR file would have this table of contents:
META-INF/MANIFEST.MF
TicTacToe.class
audio/
audio/beep.au
audio/ding.au
audio/return.au
audio/yahoo1.au
audio/yahoo2.au
images/
images/cross.gif
images/not.gif
images/new.gif
|
You can use the -C option to "change directories" during
execution of the command. For example:
jar uf TicTacToe.jar -C images new.gif
This command would change to the images directory before adding
new.gif to the JAR file. The images directory would not
be included in the pathname of new.gif when it's added to the
archive, resulting in a table of contents that looks like this:
META-INF/MANIFEST.MF
TicTacToe.class
audio/
audio/beep.au
audio/ding.au
audio/return.au
audio/yahoo1.au
audio/yahoo2.au
images/
images/cross.gif
images/not.gif
new.gif
|
As a final example, suppose you want to modify the default manifest of
TicTacToe.jar
by adding some version and vendor information. (Version and vendor
information is contained in special headers that you can add to a
JAR file's manifest. See the section on
Understanding the Manifest for information
about special headers.) You
would first prepare a text file containing the
headers that you wish to add to the default manifest. Your text file
might consist of this information, for example:
Name: TicTacToe.class
Implementation-Title: "TicTacToe demo"
Implementation-Version: "build57"
Implementation-Vendor: "Sun Microsystems, Inc."
If the file containing this information was called versionInfo,
you would add the information to the manifest in TicTacToe.jar
by using this
command:
jar umf versionInfo TicTacToe.jar
After running this command, TicTacToe.jar's manifest would
contain the information from your versionInfo file.
|