2010-10-04 17 views
4

在Eclipse或NetBeans中,當你「控制+點擊」到一個函數中時,即使它是在一個jar文件中,你至少也能看到它的整個簽名。如何從jar文件中獲取函數sinatures?

我在想,是否有可能編寫一個工具從jar文件中提取所有的函數簽名。有沒有任何API?

我知道jDepend似乎提供這個功能。不過,我相信有一些更通用的方法可以做到這一點。

回答

2

Jars是zip文件,因此您可以使用zip例程來獲取jar文件中每個類的字節碼定義。

然後,給定字節碼,您可以使用字節碼分析工具(如javassist)將字節碼加載到ClassFile中,然後獲取MethodInfo,然後您可以隨意處理。

+0

這是/不是/通過jar文件識別方法簽名的方法。見卡斯帕的迴應。 – 2010-10-04 07:23:55

+0

嗯,這是我會做到這一點的方式。 +1表示:-) – 2010-10-04 07:42:24

+0

@Hernal,取決於你需要什麼。 – 2010-10-04 08:17:57

4

我認爲javap工具就是你所追求的。

javap -classpath ./lib/ MyClass應該做的伎倆。

另請參閱this tutorial和javap的參考信息(谷歌javap,我沒有足夠的聲望發佈超過1個鏈接)。

+0

這太棒了。我不知道。謝謝! (+1) – 2010-10-04 07:41:50