Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

freeinternals Binary Internals Viewer

An application to show binary file internals visually & interactively for the meaning of every byte.

Supported Formats


  • Here is a screen shot opening java.lang.String.class file

Sample Class


User guide

  • We need the java command to run this tool
    • java -jar BinaryInternalsViewer-3.5-timestamp.jar
      • Where timestamp is the auto-generated build timestamp
    • Menu item: File > Open...
    • Choose the binary file to view

Build the Source Code

  • Prerequisite
    • Java Version: OpenJDK version 11 or higher
    • Set JAVA_HOME environment variable
      • If not set use the export statements in the script
    • Build Tool: Apache Maven 3.5 or higher: because we are using the Maven CI Friendly Versions ${revision} feature
  • Build
    • Build via maven command
      • mvn clean package install
    • Build with Script
      • ./ (Linux/MacOS/Windows Git Bash)
      • build.cmd (Windows CMD)


  • This application does not have 3rd party dependency other than JDK, easy to add it to your existing project
  • Project Structure
    • mvn dependency:tree
    • mvn com.github.ferstl:depgraph-maven-plugin:aggregate -DcreateImage -Dincludes=org.freeinternals -DshowGroupIds -DshowVersions -DoutputDirectory=docs - this command needs dot command from Graphviz

Dependency Graph

Legacy note

  • The original Java Class Viewer has been retired and merged into Binary Internals Viewer since Apr 2021