3

有没有办法修改 .class 文件以便为某些方法添加 Java 注释?基本上我想遍历jar文件中每个类文件的方法并注释某些。请注意,这不是在运行时使用 jar 文件。相反,在我完成后,我想修改带有注释的类文件。

我确实可以访问源代码,所以如果有一个自动源代码修改器,那也可以......

我假设我需要一个工具,例如JavassistASM。如果是这样,我应该使用哪一个,我将如何去做?

4

2 回答 2

8

实际上,这是 AspectJ 的一个经典用例:

declare @method : public * BankAccount+.*(..) : @Secured(role="supervisor")

虽然我承认直接字节码操作更强大,但 AspectJ 对用户更友好,当你做错事时它会立即给你编译器警告。

此外,如果您使用Load Time Weaving,您可以保持原始库 jar 不变,因为编织发生在类加载时。

参考:

于 2011-02-01T13:23:58.763 回答
4

谷歌搜索一个小时左右打开了这篇文章,这似乎完全回答了我的问题:使用ASM。要使用更改后的字节码编写类文件,请使用ClassWriter

好吧,我想是时候开始工作了。:)

于 2011-01-28T10:23:54.923 回答