Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
Jar 工具提供了一个 u 选项,你可以通过修改其清单或添加文件来更新现有 JAR 文件的内容。
添加文件的基本命令具有以下格式:
jar uf jar-file input-file(s)
在此命令中:
归档中已存在的文件与添加的文件具有相同的路径名将被覆盖。
创建新的 JAR 文件时,你可以选择使用 -C 选项来指示目录的更改。有关更多信息,请参阅 Creating a JAR File 部分。
回想一下 TicTacToe.jar 有以下内容:
META-INF/MANIFEST.MF TicTacToe.class TicTacToe.class TicTacToe.java audio/ audio/beep.au audio/ding.au audio/return.au audio/yahoo1.au audio/yahoo2.au example1.html images/ images/cross.gif images/not.gif
假设你要将文件 images/new.gif 添加到 JAR 文件中。你可以通过从 images 目录的父目录发出此命令来完成此操作:
jar uf TicTacToe.jar images/new.gif
修订后的 JAR 文件将具有以下目录:
META-INF/MANIFEST.MF TicTacToe.class TicTacToe.class TicTacToe.java audio/ audio/beep.au audio/ding.au audio/return.au audio/yahoo1.au audio/yahoo2.au example1.html images/ images/cross.gif images/not.gif images/new.gif
在执行命令期间,可以使用 -C 选项“更改目录”。例如:
jar uf TicTacToe.jar -C images new.gif
在将 new.gif 添加到 JAR 文件之前,此命令将更改为 images 目录。images 目录在添加到存档时不会包含在 new.gif 的路径名中,从而产生如下所示的目录:
META-INF/MANIFEST.MF META-INF/MANIFEST.MF TicTacToe.class TicTacToe.class TicTacToe.java audio/ audio/beep.au audio/ding.au audio/return.au audio/yahoo1.au audio/yahoo2.au example1.html images/ images/cross.gif images/not.gif new.gif