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