Javassist是一个开源的分析、编辑和创建Java字节码的类库。是由东京技术学院的数学和计算机科学系的ShigeruChiba所创建的。它已加入了开放源代码JBoss应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态AOP框架。
Javassist(JAVA编程ASSISTant)使Java字节码操作变得简单。它是一个用Java编辑字节码的类库;它使Java程序能够在运行时定义新类,并在JVM加载时修改类文件。与其他类似的字节码编辑器不同,Javassist提供两个级别的API:源级别和字节码级别。如果用户使用源级API,他们可以在不知道Java字节码规范的情况下编辑类文件。整个API仅使用Java语言的词汇表进行设计。您甚至可以以源文本的形式指定插入的字节码;Javassist即时编译它。另一方面,字节码级API允许用户直接编辑类文件作为其他编辑器。
示例代码:
ClassPoolpool=ClassPool.getDefault();CtClasscc=pool.get("test.Rectangle");cc.setSuperclass(pool.get("test.Point"));cc.writeFile();
评论