加载中…
正文 字体大小:

Java字节码操作开源框架简介

(2014-07-28 18:15:13)
标签:

it

分类: java

avassist 

Javassist是一个开源的分析、编辑和创建Java字节码的类库。是由东京技术学院的数学和计算机科学系的 Shigeru Chiba 所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态AOP框架。

BCEL 

Byte Code Engineering Library (BCEL),这是Apache Software Foundation 的Jakarta 项目的一部分。BCEL是 Java classworking 最广泛使用的一种框架,它可以让您深入 JVM 汇编语言进行类操作的细节。BCEL与Javassist 有不同的处理字节码方法,BCEL在实际的JVM 指令层次上进行操作(BCEL拥有丰富的JVM 指令级支持)而Javassist 所强调的源代码级别的工作。

ObjectWeb ASM

ObjectWeb ASM轻量级的Java字节码处理框架。它可以动态生成二进制格式的stub类或其他代理类,或者在类被JAVA虚拟机装入内存之前,动态修改类。ASM 提供了与 BCEL和SERP相似的功能,只有22K的大小,比起350K的BCEL和150K的SERP来说,是相当小巧的,并且它有更高的执行效率,是BCEL的7倍,SERP的11倍以上。

cglib 

cglib是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。Hibernate用它来实现PO字节码的动态生成。

Cojen

Cojen是一个动态Java字节码生成和分解工具。使用一个建造器来方便地生成代码,而不用再选择精确的指令。Cojen提供的工具类演示了代码生成器和加载器的使用。

JclassLib

JClassLib不但是一个字节码阅读器而且还包含一个类库允许开发者读取,修改,写入Java Class文件与字节码。

SERP 

SERP字节码框架提供一组高级的APIs进行字节码各主方面的操作。SERP字节码框架能够使你不需要明白class文件格式与JVM 指令就可以轻松完成bytecode 操作

Trove Class File API 

这个类文件API简化了Java class文件的创建。它允许你调用高级的方法来产生byte-code,不是直接编写byte-code。

Package gnu.bytecode

Package gnu.bytecode包含一些可以生成,读取,打印Java字节码文件的Java类。这个包是Kawa项目的一部分。

Classfile Reader & Writer

这个包使得读写java class文件变得很容易。它可以很容易得把class文件的内容显示给用户(除非你要统计Bug的输出数)与分解字节码。

Jiapi 

Jiapi是一个用来改变正常Class装载过程的工具。Jiapi通过操作类的字节码来代替Class原来被装载的过程。被操作的Class传给一个可以把Class装载到Java虚拟机的类装载器。通过Jiapi工具被编译的Class可进行预处理操作并且可延缓执行被修改的Class在文件系统上序列化操作。

JBET

通过JBET(Java Binary Enhancement Tool )的API可对Class文件进行分解,重新组合,或被编辑。JBET也可以创建新的Class文件。JBET用一种结构化的方式来展现Javabinary (.class)文件的内容,并且可以很容易的进行修改。

Retroweaver

Retroweaver是一个字节码组织器,它能够让你用java1.4的虚拟机来运行用1.5的新特性所编写Class.Retroweaver的操作是把用1.5编译器编译的Class文件转换成可以在任何1.4虚拟机上运行Class文件.

Jen 

Jen为字节码操作与生成提供一组高级API.利用它可以对Java classe进行重命名,把一个数据成员(Field)改成Public访问权限和新增一个构建函数等操作。Jen基于ASM2.1并完全支持Java5注释(annotations)与范型(Generics)。此外它还提供一组额外的工具类用于在运行期生成新的classes。

Soot 

Soot是一个Java优化框架.它提供了四种中间(representation)表现用于分析与转换Java字节码.Soot既可以作为优化和检查class文件的工具也可以作为一个开发与优化Java字节码的框架。在2.0以上的版本Soot还包含一个Eclipse插件。

ReJava

ReJava提供一个类库用于操作class文件(包括bytecode)和一个GUI工具用于编辑,混淆,注入代码,搜索class文件。

jclazz 

jclazz是一个Java字节码查看器与反编译工具。支持java1.4到1.6版本的字节码。

0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有