Glavo/classfile

A modern Java classfile manipulation and analysis library

Java

59

59 commits

updated Aug 28, 2026

See the code

README

Class-File API for Java 17

Gradle Check codecov Latest release javadoc

This is a modern Java class-file manipulation and analysis library. This library is a modern replacement for ASM, synchronized with the latest OpenJDK implementation and backported to Java 17.

Adding to your build

Maven:

<dependency>
  <groupId>org.glavo</groupId>
  <artifactId>classfile</artifactId>
  <version>0.5.0</version>
</dependency>

Gradle:

implementation("org.glavo:classfile:0.5.0")

Get started

Note

This library is synchronized with the OpenJDK 28 development tree and renames the java.lang.classfile and jdk.internal.classfile packages to org.glavo.classfile.

The Java 28 preview features carried by this library may undergo incompatible changes before they become final.

In order to be compatible with Java 17, this library also copies some new APIs in Java 20/21:

  • java.lang.reflect.AccessFlag -> org.glavo.classfile.AccessFlag
  • java.lang.reflect.ClassFileFormatVersion -> org.glavo.classfile.ClassFileFormatVersion
  • java.lang.constant.ModuleDesc -> org.glavo.classfile.constant.ModuleDesc
  • java.lang.constant.PackageDesc -> org.glavo.classfile.constant.PackageDesc

Here is the change log.

If you encounter problems when using this library, please feed back through issue.

If you want to discuss the design of the Class-File API, please go to the Class-File API mailing list (classfile-api-dev@openjdk.org) for discussion.

Contributors

Glavo

59 commits

Glavo/classfile

A modern Java classfile manipulation and analysis library

Java

59

59 commits

updated Aug 28, 2026

See the code

README

Class-File API for Java 17

Gradle Check codecov Latest release javadoc

This is a modern Java class-file manipulation and analysis library. This library is a modern replacement for ASM, synchronized with the latest OpenJDK implementation and backported to Java 17.

Adding to your build

Maven:

<dependency>
  <groupId>org.glavo</groupId>
  <artifactId>classfile</artifactId>
  <version>0.5.0</version>
</dependency>

Gradle:

implementation("org.glavo:classfile:0.5.0")

Get started

Note

This library is synchronized with the OpenJDK 28 development tree and renames the java.lang.classfile and jdk.internal.classfile packages to org.glavo.classfile.

The Java 28 preview features carried by this library may undergo incompatible changes before they become final.

In order to be compatible with Java 17, this library also copies some new APIs in Java 20/21:

  • java.lang.reflect.AccessFlag -> org.glavo.classfile.AccessFlag
  • java.lang.reflect.ClassFileFormatVersion -> org.glavo.classfile.ClassFileFormatVersion
  • java.lang.constant.ModuleDesc -> org.glavo.classfile.constant.ModuleDesc
  • java.lang.constant.PackageDesc -> org.glavo.classfile.constant.PackageDesc

Here is the change log.

If you encounter problems when using this library, please feed back through issue.

If you want to discuss the design of the Class-File API, please go to the Class-File API mailing list (classfile-api-dev@openjdk.org) for discussion.

Contributors

Glavo

59 commits

Languages

Java

99.6%