我有一个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 文件,只能是 class 文件。你可以通过运行以下命令来查看 jar 文件的内容:
jar tvf jar-file.jar