--------------------------------------
Javassist (Java Programming Assistant)
--------------------------------------

"Javassist (Java Programming Assistant) makes Java bytecode manipulation simple.
 It is a class library for editing bytecodes in Java; it enables Java programs 
to define a new class at runtime and to modify a class file when the JVM loads 
it. Unlike other similar bytecode editors, Javassist provides two levels of 
API: source level and bytecode level. If the users use the source-level API, 
they can edit a class file without knowledge of the specifications of the Java 
bytecode. The whole API is designed with only the vocabulary of the Java 
language. 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."

For more information:
http://www.javassist.org/‎
