Open Source ByteCode Libraries in Java

17 projects

Apache Commons BCEL (Byte Code Engineering Library) analyzes, creates, and manipulates Java class files. It represents classes as objects with methods, fields, and bytecode instructions, supports reading and writing . class files, and includes the JustIce bytecode verifier.

Details

Javassist (Java Programming Assistant) is a bytecode manipulation library with source-level and bytecode-level APIs. It allows defining new classes at runtime and modifying class files before the JVM loads them. The source-level API lets you edit classes using Java vocabulary and insert bytecode as source fragments that Javassist compiles on the fly.

Details

All-purpose Java bytecode manipulation and analysis framework. It can modify existing classes or generate classes in binary form, with a focus on size and performance; used by OpenJDK, Groovy, Kotlin, Byte Buddy, and Gradle.

Details

jclasslib bytecode editor visualizes compiled Java class files and bytecode; many aspects can be edited in the UI. It also provides a Kotlin Multiplatform library to read and write Java class files and bytecode.

Details

Classes to generate, read, write, and print Java bytecode (. class) files; used by Kawa to compile Scheme to bytecode and usable by other languages targeting the JVM.

Details
cglibInactive

cglib is a byte code generation library that provides a high-level API to generate and transform Java bytecode. It is used by AOP, testing, and data access frameworks to generate dynamic proxies and intercept field access.

Details
CojenInactive

Dynamic Java bytecode generation and disassembly tools. A builder API allows code to be generated without selecting exact instructions. Includes utility classes that demonstrate the code generator and loader.

Details
SootInactive

Java optimization framework providing four intermediate representations (Baf, Jimple, Shimple, Grimp) for analyzing and transforming bytecode; usable as a standalone tool or as a framework for custom optimizations.

Details
JdecInactive

Java decompiler with a Swing UI that reverses bytecode in . class files to Java source, supports JAR decompilation, disassembly, and displays constant pool and exception table details.

Details
JiapiInactive

Framework to alter class loading by manipulating bytecode before it is passed to a class loader; supports just-in-time weaving and ahead-of-time instrumentation with event-based API and ClassLoader integration.

Details
RetroweaverInactive

Bytecode weaver that transforms Java 1. 5 class files into 1. 4-compatible bytecode so applications using generics, enums, and other 1.

Details
SERPInactive

High-level bytecode framework for manipulating class files, fields, methods, and instructions with consistent constant-pool management and instruction morphing.

Details

A Java library for reading and writing Java class files. It does not provide display of classfile contents or bytecode disassembly, only the read/write API.

Details
JBETInactive

JBET (Java Binary Enhancement Tool) is a program analysis and manipulation library for Java class files. The API supports disassembling, reassembling, and editing existing classes and creating new ones, using an internal representation of . class file contents.

Details
JenInactive

Lightweight, high-level Java bytecode manipulation and generation library built on ASM 2. 1, with support for annotations and generics and utilities for working with generated classes at runtime.

Details
JReloaderInactive

Small JVMTI-based tool that enables class hot-swapping in a running JVM so developers can change code on-the-fly; only method body changes can be reloaded, not class signatures.

Details

High-level API for creating Java class files by calling methods that generate bytecode instead of writing raw bytecode; part of the TeaTrove project.

Details