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 tvf
、awk
和您想要的提取模式,可以很容易地自动创建该文件。我将把它作为一个练习和/或另一个SO问题:-)
或者您可以使用unzip
——JAR文件基本上就是一个zip文件。
干杯,
您可以使用在参数中接受通配符的unzip
命令(jar
命令不是这样)。像这样的东西应该做的技巧(免责声明:未测试)
unzip youFile.jar "*.java"
jar中不应该有任何*.java文件,只有类文件。您可以首先通过运行来检查jar的内容
jar tvf jar-file.jar