有没有办法修改.class文件,以便向某些方法添加Java?基本上,我希望遍历jar文件中每个类文件的方法,并注释某些方法。请注意,当使用jar文件时,这不是在运行时。相反,在我完成之后,我想用注解修改类文件。
我确实有权访问源代码,所以如果有一个自动的源代码修改器,也可以工作……
我假设我需要一个像Javassist或ASM这样的工具。如果是这样的话,我应该使用哪一个,我该如何去做呢?
发布于 2011-01-28 18:23:55
用谷歌搜索一个小时左右,this article就会打开,这似乎完全回答了我的问题:使用ASM。要使用更改后的字节码编写类文件,请使用ClassWriter。
好吧,我想是时候开始工作了。:)
发布于 2011-02-01 21:23:59
实际上,这是AspectJ的一个经典用例:
declare @method : public * BankAccount+.*(..) : @Secured(role="supervisor")虽然我承认直接字节码操作更强大,但AspectJ对用户更友好,当您做错了什么事情时,它会立即向您发出编译器警告。
此外,如果使用Load Time Weaving,则可以保持原始库jar不变,因为编织发生在类加载时。
参考:
图书(
https://stackoverflow.com/questions/4826946
复制相似问题