2014-10-02 93 views
0

我在查找.jar文件使用的所有外部库时遇到问题。我的.jar文件非常大,并且手动反编译并遍历每个类,检查所有使用的路径是不可能的。我想知道是否有方法或工具可以通过.jar文件,并列出所有不在.jar文件中的类的所有外部路径/链接? P:我不是问“这样做的最佳工具是什么?”,我只需要知道如何获得文件使用的所有外部路径,而无需手动反编译它。获取JAR使用的所有外部源路径

+0

你试图解决什么确切的问题?也许可以建议寻找所有外部类别的更好的选择。 – 2014-10-02 04:34:15

+0

@Rajeev lol,我的主要目标是通过用proguard对其进行混淆来对已改型的minecraft客户端进行反混淆处理。现在,所有的类/变量/方法都用20个随机字母/数字命名,我只是想让它们命名为A,B,C等。但是为了做到这一点,我需要知道它的所有依赖关系:D – Victor2748 2014-10-02 04:37:39

+0

@Rajeev有些类名称超过260个字符,所以我无法反编译,并将它们导出到eclipse项目中,因为Windows中的文件路径限制最多为260个字符 – Victor2748 2014-10-02 04:40:29

回答

1

试试这个:

  1. 解压JAR内容
  2. 做管道输送到一个文本文件*.class目录搜索。
  3. 过滤掉内部和匿名类。 (与$类的文件名)
  4. 写一个小程序,只会通过您的列表循环和加载类定义(Class.forName()应该足够)
  5. 用管道输送到一个文本文件
  6. 一旦选择-verbose:class运行jar你的程序完成后,你将不得不在管道文件从各自的罐子加载的类的完整列表
  7. 筛选出的rt.jar内容为更清洁的列表

我不知道如果-verbose:class工作如果代码是obfustcated,逻辑上我认为它应该没问题。