我在查找 .jar
文件使用的所有外部库时遇到问题。我的 .jar 文件非常大,手动反编译它并遍历每个类、检查所有使用的路径是不可能的。我想知道是否有一种方法或工具可以遍历 .jar 文件,并列出 .jar 文件中不存在的类的所有外部路径/链接?
P.S:我不是在问“最好的工具是什么?”,我只需要知道如何获取 .jar
文件使用的所有外部路径,而无需手动反编译它。
最佳答案
试试这个:
- 提取 jar 内容
- 在目录中搜索通过管道传输到文本文件的
*.class
。 - 过滤掉内部类和匿名类。 (类文件名带有
$
) - 编写一个小程序,只需循环遍历列表并加载类定义(
Class.forName()
就足够了) - 使用通过管道传输到文本文件的选项
-verbose:class
运行 jar - 程序完成后,您将获得从管道文件中相应 jar 加载的类的完整列表
- 过滤掉 rt.jar 内容以获得更清晰的列表
我不确定 -verbose:class
是否适用于混淆的代码,从逻辑上讲,我认为它应该没问题。
关于java - 获取 JAR 使用的所有外部源路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26154448/