
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 files.