JAR——提取特定的文件



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

jar xf jar-file.jar *.java

来源:

要从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

通过创造性地使用jar tvfawk和您想要的提取模式,可以很容易地自动创建该文件。我将把它作为一个练习和/或另一个SO问题:-)

或者您可以使用unzip——JAR文件基本上就是一个zip文件。

干杯,

您可以使用在参数中接受通配符的unzip命令(jar命令不是这样)。像这样的东西应该做的技巧(免责声明:未测试)

unzip youFile.jar "*.java"

jar中不应该有任何*.java文件,只有类文件。您可以首先通过运行来检查jar的内容

jar tvf jar-file.jar

最新更新