The Byte Code Engineering Library is intended to give users a convenient
possibility to analyze, create, and manipulate (binary) Java class files
(those ending with .class). Classes are represented by objects which contain
all the symbolic information of the given class: methods, fields and byte
code instructions, in particular.
Such objects can be read from an existing file, be transformed by a program
(e.g. a class loader at run-time) and dumped to a file again. An even more
interesting application is the creation of classes from scratch at run-time.
The Byte Code Engineering Library (BCEL) may be also useful if you want to
learn about the Java Virtual Machine (JVM) and the format of Java .class