我的 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
和您想要的提取模式,可以轻松自动创建此文件。我将把它作为练习和/或另一个问题:-)
或者您可以使用
unzip
- JAR 文件基本上是一个 zip 文件。
干杯,
您可以使用
unzip
命令,该命令在其参数中接受通配符(jar
命令不是这种情况)。像这样的东西应该可以解决问题(免责声明:未经测试)
unzip youFile.jar "*.java"
jar -xf mylib.jar test.java
该命令尝试从 JAR 文件 mylib.jar 中提取文件 test.java。
jar 中不应该有任何 *.java 文件,只有类文件。您可以先通过运行来检查 jar 的内容:
jar tvf jar-file.jar