2.4.3 提取jar文件的内容
提取文件jar文件内容的命令格式如下所示。
jar xf jar-file[archived-file(s)]
下面分析该命令的参数或选项含义。
❑x选项说明提取jar文件的内容。
❑f选项指明需要提取的jar文件必须在命令行中说明。
❑jar-file参数是需要提取的jar文件的路径和名字。
❑archived-file(s)是可选参数,包含从jar-file中提取的文件的列表,如果没有该可选项,则默认是提取jar-files中的所有文件。
说明
选项x和f的顺序可以互换,但是在二者之间不能有空格。当执行提取文件操作时,Jar工具复制想要提取的文件,并把复制的文件存储在当前目录下,重新建立目录结构。而原始的jar文件内容不发生变化。
【实例2.3】下面通过具体的例子说明如何提取jar文件的相关子文件。命令格式如下:
jar xf ImageAudio.jar
在图2.14中已经看到了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
假设想从ImageAudio.jar文件中提取T2.gif和mid_warn.wav两个文件,可以采用如下命令格式:
Jar xf ImgeAudio.jar myimages/T2.gif myaudio/mid_warn.wav
该命令做两件事:
❑复制目录myimages下的T2.gif和myaudio目录下的mid_warn.wav文件。
❑如果文件夹myimages或myaudio不存在则创建新文件夹,并把文件T2.gif放入myimages文件夹,把mid_warn.wav放入myaudio文件夹。
说明
因为ImageAudio.jar文件是带目录结构的,所以在提取文件时必须告诉Jar工具文件的相对位置,否则无法提取想要的文件。无论如何,原始的ImageAudio.jar不会发生任何变化。
读者可以以相同的方式提取任何类型的文件,当然前提是该文件在jar文件中存在,所以要求读者在提取文件前先使用命令jar tf jar-file来查看文件内容。
而如果没有指定要提取的文件名称,则默认是提取所有的jar文件中的内容,并重建文件目录。读者可以通过如下命令体验该功能:
Jar xf ImageAudio.jar