(1) ObjectWeb [b]ASM[/b]轻量级的Java字节码处理框架。它可以动态生成二进制格式的stub类或其他代理类,或者在类被JAVA虚拟机装入内存之前,动态修改类。ASM 提供了与 BCEL和SERP相似的功能,只有22K的大小,比起350K的BCEL和150K的SERP来说,是相当小巧的,并且它有更高的执行效率,是BCEL的7倍,SERP的11倍以上。
该项目主页:[url]http://asm.objectweb.org/[/url]
(2) [b]cglib[/b]是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。Hibernate用它来实现PO字节码的动态生成。
该项目主页:[url]http://cglib.sourceforge.net/[/url]
(3)Byte Code Engineering Library ([b]BCEL[/b]),这是Apache Software Foundation 的Jakarta 项目的一部分。BCEL是 Java classworking 最广泛使用的一种框架,它可以让您深入 JVM 汇编语言进行类操作的细节。BCEL与Javassist 有不同的处理字节码方法,BCEL在实际的JVM 指令层次上进行操作(BCEL拥有丰富的JVM 指令级支持)而Javassist 所强调的源代码级别的工作。
该项目主页:[url]http://jakarta.apache.org/bcel/[/url]
(4)[b]SERP[/b]字节码框架提供一组高级的APIs进行字节码各主方面的操作。SERP字节码框架能够使你不需要明白class文件格式与JVM 指令就可以轻松完成bytecode 操作
该项目主页:[url]http://serp.sourceforge.net[/url]
(5)[b]Javassist[/b]是一个开源的分析、编辑和创建Java字节码的类库。是由东京技术学院的数学和计算机科学系的 Shigeru Chiba 所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态AOP框架。
该项目主页:[url]http://www.csg.is.titech.ac.jp/~chiba/javassist/[/url]
实际例子,可参考[url]http://yonglin4605.iteye.com/blog/1396494[/url]
该项目主页:[url]http://asm.objectweb.org/[/url]
(2) [b]cglib[/b]是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。Hibernate用它来实现PO字节码的动态生成。
该项目主页:[url]http://cglib.sourceforge.net/[/url]
(3)Byte Code Engineering Library ([b]BCEL[/b]),这是Apache Software Foundation 的Jakarta 项目的一部分。BCEL是 Java classworking 最广泛使用的一种框架,它可以让您深入 JVM 汇编语言进行类操作的细节。BCEL与Javassist 有不同的处理字节码方法,BCEL在实际的JVM 指令层次上进行操作(BCEL拥有丰富的JVM 指令级支持)而Javassist 所强调的源代码级别的工作。
该项目主页:[url]http://jakarta.apache.org/bcel/[/url]
(4)[b]SERP[/b]字节码框架提供一组高级的APIs进行字节码各主方面的操作。SERP字节码框架能够使你不需要明白class文件格式与JVM 指令就可以轻松完成bytecode 操作
该项目主页:[url]http://serp.sourceforge.net[/url]
(5)[b]Javassist[/b]是一个开源的分析、编辑和创建Java字节码的类库。是由东京技术学院的数学和计算机科学系的 Shigeru Chiba 所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态AOP框架。
该项目主页:[url]http://www.csg.is.titech.ac.jp/~chiba/javassist/[/url]
实际例子,可参考[url]http://yonglin4605.iteye.com/blog/1396494[/url]