library for editing bytecodes in Java
This library makes Java bytecode manipulation simple. It enables Java programs to define a new class at runtime and to modify a class file when the JVM loads it.
Unlike other bytecode editors, Javassist provides two levels of API: source level and bytecode level. With the source-level API, users can edit a class file without knowledge of the specifications of the Java bytecode. You can even specify inserted bytecode in the form of source text; Javassist compiles it on the fly. On the other hand, the bytecode-level API allows the users to directly edit a class file as other editors.