Skip to content

zxh0/classpy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c907b08 · Oct 27, 2022
Nov 13, 2020
Nov 13, 2020
Nov 13, 2020
Nov 13, 2020
Oct 26, 2022
Nov 13, 2020
Nov 11, 2020
Nov 13, 2020
Feb 22, 2018
Nov 11, 2020
Nov 14, 2020
Nov 11, 2020
Nov 11, 2020
Mar 19, 2015
Mar 19, 2015
Oct 23, 2018
Oct 23, 2018
Oct 13, 2018

Repository files navigation

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

Screenshots

Screenshot1 Screenshot2 Screenshot3 Screenshot4