Java Open Source Projects Directory

...dedicated into Java open source projects

  • Increase font size
  • Default font size
  • Decrease font size
ByteCode Libraries


The class file API simplifies creation of Java class files. Instead of having to write byte-code, the Class File API allows you to call high-level methods which generate the byte-code for you. Development of the Trove class file API has ceased. Continued development is under the Cojen project.



Soot is a Java optimization framework. It provides four intermediate representations for analyzing and transforming Java bytecode: 1. Baf: a streamlined representation of bytecode which is simple to manipulate. 2. Jimple: a typed 3-address intermediate representation suitable for optimization. 3. Shimple: an SSA variation of Jimple. 4. Grimp: an aggregated version of Jimple suitable for decompilation and code inspection. Soot can be used as a stand alone tool to optimize or inspect class files, as well as a framework to develop optimizations or transformations on Java bytecode.



Retroweaver is a bytecode weaver that enables you to take advantage of the new Java 1.5 language features, while still retaining total binary compatability with 1.4 virtual machines. Retroweaver operates by transforming Java class files compiled by a 1.5 compiler into version 1.4 class files which can then be run on any 1.4 virtual machine.



Dynamic Java bytecode generation and disassembly tools. A builder allows code to be generated more easily, instead of having to select exact instructions. Utility classes are provided which demonstrate the code generator and loader. Cojen is a fork of the Trove class file API.



Contains classes to generate, read, write, and print Java bytecode (.class) files. Part of the Kawa project



jclasslib bytecode is a viewer but it also contains a library that enables developers to read, modify and write Java class files and bytecode.



ASM is a Java bytecode manipulation framework. It can be used to dynamically generate stub classes or other proxy classes, directly in binary form, or to dynamically modify classes at load time, i.e., just before they are loaded into the Java Virtual Machine. ASM offers similar functionalities as BCEL or SERP, but is much more smaller (25KB instead of 350KB for BCEL and 150KB for SERP) and faster than these tools (the overhead of a load time class transformation is of the order of 60% with ASM, 700% or more with BCEL, and 1100% or more with SERP). Indeed ASM was designed to be used in a dynamic way

 * and was therefore designed and implemented to be as small and as fast as possible. ASM can of course be used in a static way too.



The goal of the serp bytecode framework is to tap the full power of bytecode modification while lowering its associated costs. The framework provides a set of high-level APIs for manipulating all aspects of bytecode, from large-scale structures like class member fields to the individual instructions that comprise the code of methods. While in order to perform any advanced manipulation, some understanding of the class file format and especially of the JVM instruction set is necessary, the framework makes it as easy as possible to enter the world of bytecode development.


Page 2 of 2