Java bytecode engineering toolkit
### [Javassist version 3](http://www.javassist.org)

Copyright (C) 1999-2018 by Shigeru Chiba, All rights reserved.

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.

This software is distributed under the Mozilla Public License Version 1.1,
the GNU Lesser General Public License Version 2.1 or later, or
the Apache License Version 2.0.

#### Files

  * [Readme.html](Readme.html)
Readme file (a longer version of this file).

  * [License.html](License.html)
License file

  * [tutorial/tutorial.html](tutorial/tutorial.html)
Tutorial

  * ./javassist.jar
The Javassist jar file (class files)

  * ./src/main
The source files

  * [html/index.html](html/index.html)
The top page of the Javassist API document.
