【发布时间】:2010-10-04 04:49:46
【问题描述】:
在 Eclipse 或 NetBeans 中,当您“控制 + 单击”进入一个函数时,您至少可以看到它的整个签名,即使它位于 jar 文件中。
我想知道是否可以编写一个工具来从 jar 文件中提取所有函数签名。有这方面的 API 吗?
我知道jDepend 似乎为此提供了功能。不过,我相信有一些更通用的方法可以做到这一点。
【问题讨论】:
标签: java jar binary method-signature
在 Eclipse 或 NetBeans 中,当您“控制 + 单击”进入一个函数时,您至少可以看到它的整个签名,即使它位于 jar 文件中。
我想知道是否可以编写一个工具来从 jar 文件中提取所有函数签名。有这方面的 API 吗?
我知道jDepend 似乎为此提供了功能。不过,我相信有一些更通用的方法可以做到这一点。
【问题讨论】:
标签: java jar binary method-signature
我认为javap 工具正是您所追求的。
javap -classpath ./lib/ MyClass 之类的东西应该可以解决问题。
另请参阅 this tutorial 和 javap 的参考信息(google javap,我没有足够的声誉来发布超过 1 个链接)。
【讨论】:
jar 是 zip 文件,因此您可以使用 zip 例程获取 jar 文件中每个类的字节码定义。
然后,给定字节码,您可以使用像javassist这样的字节码分析工具将字节码加载到ClassFile中,然后获取MethodInfo,然后您可以随意处理。
【讨论】: