提取 JAR 文件的内容

用于提取 JAR 文件内容的基本命令是:

jar xf jar-file [archived-file(s)]

让我们看一下此命令中的选项和参数:

  • x选项表示您要从 JAR 存档中“提取”文件。

  • f选项指示在命令行上而不是通过 stdin 指定要从中提取文件的 JAR * file *。

  • jar\-file参数是从中提取文件的 JAR 文件的文件名(或路径和文件名)。

  • archived\-file\(s\)是一个可选参数,由要从存档中提取的文件的空格分隔列表组成。如果不存在此参数,则 Jar 工具将提取存档中的所有文件。

与往常一样,命令中xf选项出现的 Sequences 无关紧要,但是它们之间不能有空格。

提取文件时,Jar 工具会复制所需文件并将其写入当前目录,从而重现文件在归档文件中的目录结构。原始 JAR 文件保持不变。

Caution:

提取文件时,Jar 工具将覆盖与提取的文件具有相同路径名的所有现有文件。

An Example

让我们从上一节中一直使用的 TicTacToe JAR 文件中提取一些文件。回想一下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

假设您要提取TicTacToe类文件和cross\.gif图像文件。为此,可以使用以下命令:

jar xf TicTacToe.jar TicTacToe.class images/cross.gif

此命令有两件事:

  • 它将TicTacToe\.class的副本放置在当前目录中。

  • 如果目录images尚不存在,它将创建目录images,并在其中放置cross\.gif的副本。

原始的 TicTacToe JAR 文件保持不变。

可以按照相同的方式从 JAR 文件中提取所需数量的文件。当命令未指定要提取的文件时,Jar 工具将提取存档中的所有文件。例如,您可以使用以下命令来提取 TicTacToe 存档中的所有文件:

jar xf TicTacToe.jar