gpt4 book ai didi

java - 列出多个jar文件的内容

转载 作者:IT老高 更新时间:2023-10-28 20:45:41 24 4
gpt4 key购买 nike

我正在一堆 jar 中搜索 .class 文件。

jar tf abc.jar 

适用于一个文件。我试过了

find -name "*.jar" | xargs jar tf

什么都不打印。我能想到的唯一解决方案是全部解压缩,然后搜索。有没有更好的办法?我在 LUnix 上。

编辑:扫描许多 jar 时,将 jar 文件名与类一起打印是很有用的。这种方法效果很好:

find . | grep jar$ | while read fname; do jar tf $fname | grep SchemaBuilder && echo $fname; done

产生的样本输出:

  1572 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$1.class
1718 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$2.class
42607 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder.class
./XmlSchema-1.3.2.jar
1572 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$1.class
1718 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$2.class
42607 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder.class
./XmlSchema.jar

最佳答案

您需要将 -n 1 传递给 xargs 以强制它为从 查找:

find -name "*.jar" | xargs -n 1 jar tf

否则 xargs 的命令行看起来像 jar tf file1.jar file2.jar...,这与预期的含义不同。

一个有用的调试技术是在 xargs 运行的命令之前粘贴 echo:

find -name "*.jar" | xargs echo jar tf

这将打印出完整的 jar 命令,而不是执行它,这样您就可以看到它有什么问题。

关于java - 列出多个jar文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7770183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com