JAR - 提取特定文件

2022-09-01 06:29:38

我在JAR存档中.class和.java文件。有没有办法只从中提取.java文件?我试过这个命令,但它不起作用:

jar xf jar-file.jar *.java

答案 1

源头:

要仅从 jar 文件中提取某些文件,请提供其文件名:

C:\Java> jar xf myFile.jar foo bar

使用通配符是一个 shell 问题,在从 JAR 文件中提取时,您不应该期望它能正常工作(正如您已经意识到的那样,情况就是这样)。

您可以做的是通过修饰符提供要提取的文件列表:@

jar xf my.jar @myfiles.lst

其中将是:myfiles.lst

com/my/MyClass.java
com/my/MySecondClass.java

此文件可以通过创造性地使用 和所需的提取模式轻松自动创建。我会把它作为一个练习和/或另一个SO问题:-)jar tvfawk

或者你可以使用 - JAR文件基本上是一个zip文件。unzip

干杯


答案 2

您可以使用在其参数中接受通配符的命令(该命令不是这种情况)。像这样的东西应该做这个把戏(免责声明:未测试)unzipjar

unzip youFile.jar "*.java"