2.4.4 更新jar文件

Jar工具提供了u参数向已经存在的jar文件中增加新的文件,其基本命令格式如下所示。


jar uf jar-file.jar input_file(s)


下面分析该命令的参数或选项的含义。

❑u选项说明需要更新jar文件的内容列表。

❑f选项指明需要更新的jar文件必须在命令行中说明。

❑jar-file参数是需要更新的jar文件。

❑input_file(s)表示需要增加到jar文件中的文件列表。

说明 如果增加的文件在jar文件中已经存在,则新文件会覆盖掉原来的文件。

【实例2.4】下面举例说明如何向已经存在的jar文件中增加新文件。请读者再回忆一下ImageAudio.jar的内容:


mETA-INF/

mETA-INF/MANIFEST.MF

myimages;

myimages/T4.gif

myimages/T10.gif

myimages/T2.gif

myimages/T3.gif

myimages/T2.gif

myaudio/

myaudio/mid_warn.wav

myaudio/mid_info.wav

myaudio/mid_err.wav


假设想要向该jar文件中增加一个mid_dd.wav文件,首先在mid_dd.wav文件所在目录下执行如下命令:


Jar uf ImageAudio.jar mid_confirm.wav


再次查看ImageAudio.jar的文件内容则如下所示。


META-INF/

META-INF/MANIFEST.MF

myimages/

myimages/T4.gif

myimages/T10.gif

myimages/T2.gif

myimages/T3.gif

myimages/T2.gif

myaudio/

myaudio/mid_warn.wav

myaudio/mid_info.wav

myaudio/mid_err.wav

mid_confirm.wav


注意

在更新后的jar文件中增加了一个文件,该文件在文件列表的最后一行显示。文件mid_confirm.wav放在ImageAudio.jar文件目录结构的根目录下。

如果想添加的文件在文件夹newaudio中,也可以在该文件夹的直接上级目录中使用-C选项,指定目录,然后进入目录寻找想添加的文件。如下命令所示。


jar uf ImageAudio.jar-C newaudio mid_confirm.wav


该命令的作用是向ImageAudio.jar文件中添加一个音频文件,Jar工具需要在当前目录的newaudio目录下继续搜索名为mid_confirm.wav的文件。

以上介绍了Jar工具的各种使用方式,这里对Jar工具参数含义做个总结:


jar{ctxu}[vfm0Mi][jar-文件][manifest-文件][-C目录]文件名……


选项含义:

❑-c创建新的存档。

❑-t列出存档内容的列表。

❑-x展开存档中的命名的(或所有的)文件。

❑-u更新已存在的存档。

❑-v生成详细输出到标准输出上。

❑-f指定存档文件名。

❑-m包含来自标明文件的标明信息。

❑-o只存储方式,未用ZIP压缩格式。

❑-M不产生所有项的清单(manifest)文件。

❑-i为指定的jar文件产生索引信息。

❑-C改变到指定的目录。

说明

如果一个文件名是一个目录,它将被递归处理。清单(manifest)文件名和存档文件名都需要被指定,按“m”和“f”标志指定的顺序相同。