Classpy
Classpy is a GUI tool for investigating Java class file, Lua binary chunk, Wasm binary code, and other binary file formats.
Inspiration
This tool is mainly inspired by javap and JavaClassViewer. I reinvent the wheel for the following two reasons:
1. Learn Java class file format and bytecode through parsing it
2. Try JavaFX 8
Features
- Understands class files described by JVMS9
- Supports Lua 5.3 binary chunk format
- Supports Wasm binary format
- Supports Bitcoin raw block and transaction format
- Displays parsed binary file as tree and hex text
- The corresponding hex text is highlighted when you select a tree node
Quick Start
Just for macos with brew
- Install
brew tap guxingke/repo && brew install classpy
- Try
- open default gui window
classpy
- open gui window with args
echo "public class HelloWorld { public static void main(String[] args) { System.out.println(\"Hello World\"); } }" > HelloWorld.java $JAVA_HOME/bin/javac HelloWorld.java classpy HelloWorld.class
Requirements
Java 15 (checkout branch java8
if you stuck on Java 8)
Build
cd path/to/classpy
./gradlew fatJar
# java -jar path/to/classpy/classpy-gui/build/libs/classpy-fat-jar-0.10.0.jar
Run
cd path/to/classpy
./gradlew run