Java JAR-提取特定文件
我在JAR存档中有.class和.java文件。有没有办法只从中提取.java文件? 我已尝试此命令,但无效:Java JAR-提取特定文件,java,jar,extract,archive,Java,Jar,Extract,Archive,我在JAR存档中有.class和.java文件。有没有办法只从中提取.java文件? 我已尝试此命令,但无效: jar xf jar-file.jar *.java 从 要仅从jar文件中提取某些文件,请提供其文件名: C:\Java>jarxf myFile.jar foo-bar 使用通配符是一种shell功能,当从JAR文件中提取时,您不应该期望它能够工作(正如您所意识到的,情况就是这样) 您可以通过@修改器提供要提取的文件列表: jar xf my.jar @myfiles.lst
jar xf jar-file.jar *.java
从
要仅从jar文件中提取某些文件,请提供其文件名:
C:\Java>jarxf 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
和所需的提取模式,可以轻松地自动创建此文件。我将把它作为一个练习和/或另一个问题:-)
或者您可以使用解压
——JAR文件基本上是一个zip文件
干杯,您可以使用
unzip
命令,该命令在其参数中接受通配符(与jar
命令不同)。像这样的东西应该可以做到(免责声明:未测试)
jar中不应该有任何*.java文件,只有类文件。您可以通过运行以下命令首先检查jar的内容:
jar tvf jar-file.jar
为什么不提取所有文件并删除不需要的文件呢?这个JAR来自哪里?将源文件和类文件打包在同一个JAR中不是一个好的做法……因为这是一个更丑陋、更慢的解决方案。那里大约有10000个文件。好的,我知道,这在文档中,但是jar支持任何正则表达式吗?我在任何地方都找不到它:/发布源jar的做法并不少见。
jar tvf jar-file.jar