Java 获取JAR使用的所有外部源路径

Java 获取JAR使用的所有外部源路径,java,jar,decompiling,Java,Jar,Decompiling,我在查找.jar文件使用的所有外部库时遇到问题。我的.jar文件很大,手动反编译它并遍历每个类,检查所有使用的路径是不可能的。我想知道是否有一种方法或工具可以遍历.jar文件,并列出指向不在.jar文件中的类的所有外部路径/链接 附言:我不是问“什么是最好的工具?”我只是需要知道如何获取.jar文件使用的所有外部路径,而不必手动对其进行反编译。尝试以下方法: 提取罐中的内容 对传输到文本文件的*.class进行目录搜索 筛选内部和匿名类。(带有$的类文件名) 编写一个小程序,在列表中循环并加载类

我在查找
.jar
文件使用的所有外部库时遇到问题。我的
.jar
文件很大,手动反编译它并遍历每个类,检查所有使用的路径是不可能的。我想知道是否有一种方法或工具可以遍历.jar文件,并列出指向不在.jar文件中的类的所有外部路径/链接

附言:我不是问“什么是最好的工具?”我只是需要知道如何获取
.jar
文件使用的所有外部路径,而不必手动对其进行反编译。

尝试以下方法:

  • 提取罐中的内容
  • 对传输到文本文件的
    *.class
    进行目录搜索
  • 筛选内部和匿名类。(带有
    $
    的类文件名)
  • 编写一个小程序,在列表中循环并加载类定义(
    class.forName()
    就足够了)
  • 运行jar时,将选项
    -verbose:class
    管道传输到文本文件
  • 一旦您的程序完成,您将有一个完整的类列表,这些类是从管道文件中相应的jar加载的
  • 过滤掉rt.jar内容以获得更清晰的列表

  • 我不确定
    -verbose:class
    是否适用于模糊代码,从逻辑上讲,我认为应该可以。

    您试图解决的确切问题是什么?也许可以建议一个更好的替代方法来查找所有外部类。@Rajeev lol,我的主要目标是用proguard混淆一个修改过的minecraft客户机,从而消除它的缺陷。现在,所有的类/变量/方法都是用20个随机字母/数字命名的,我只是想把它们命名为A、b、c等等。但要做到这一点,我需要知道它的所有依赖关系:D@Rajeev有些类的命名超过260个字符,所以我无法反编译并将它们导出到eclipse项目中,因为Windows中的文件路径限制最多为260个字符