关于java:如何查看给定目录中所有jar的所有内容?

How to view all contents of all jars in a given directory?

也许我只是脑残了一天,但是,获取给定目录中所有 jar 内容的最简单/最好的方法是什么?

我遇到了类路径/加载器冲突,所以我想要一种方法来获取所有 jar 的全部内容的列表以找到我的问题。我知道有一些工具可以帮助解决这个问题,但是,就我的一生而言,我想不出其中任何一个。

有什么想法吗?

编辑:
作为参考,这是我一直在做的事情(为了便于阅读,我将其分解,但我只是将其全部作为 shell 脚本在一行上完成):

1
2
3
4
5
6
OUTFILE=/tmp/allClasses.txt ;
touch $OUTFILE;
for file in *.jar;
do echo" === $file">> $OUTFILE;
jar -tf $file >> $OUTFILE;
done;

这似乎工作得很好,但感觉很笨重。

作为参考,这是我一直在做的事情:
touch /tmp/allClasses.txt ; for file in *.jar ; do echo" === $file" >> /tmp/allClasses.txt ; jar -tf $file >> /tmp/allClasses.txt ; done;

这似乎工作得很好,但感觉很笨重。


使用 Winrar 或 7zip 将 jar 文件作为存档打开


jar xf jar-file 提取 JAR 文件的内容。


zipinfo 可以同时列出多个 zip(或 JAR)文件的内容:

1
zipinfo \\*.jar

诀窍是转义 * 所以 zipinfo 本身扩展通配符而不是 shell 扩展它然后将扩展列表传递给 zipinfo (这不起作用,因为 zipinfo 期望第一个参数是要查看的档案,随后的参数是该档案中的入口路径)。


jar 文件只是一个 zip 文件(压缩与否),您甚至可以将其扩展名从 jar 更改为 zip 并解压缩它