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