Home

Awesome

JVM Explorer

JVM Explorer is a Java desktop application for browsing loaded class files inside locally running Java Virtual Machines.

<img src="assets/readme-screenshot.png" alt="JVM Explorer Screenshot" />

Build

Features

Demos

<details> <summary>Browse Classes And Fields</summary>

Notes:

Browse Classes Example

</details> <details> <summary>Execute Code In Remote JVM</summary> <br/>

Notes:

Execute Code Example

</details> <details> <summary>Show Class Loader Hierarchy</summary> <br/>

Class Loader Hierarchy Example

</details> <details> <summary>Launch Jar With Patched ProcessBuilder</summary> <br/>

Launch Patched Jar Example

</details> <details> <summary>Export Classes In Package</summary> <br/>

Export Classes Example

</details> <details> <summary>Modify Method</summary> <br/>

Notes:

Modify Method Example

</details> <details> <summary>Modify Class</summary> <br/>

Notes:

Modify Class Example

</details> <details> <summary>Modify Bytecode</summary> <br/>

Notes:

Modify Bytecode Example

</details>

Getting Started

There are three ways to run the application. Execute a provided platform-specific installer, a provided JAR file, or build and run it yourself. This application is intended to run on Java 11+ and can attach to JVMs running Java 7+.

Run Installer:

The platform-specific installers currently support Windows, Linux, and Mac with Intel 64-bit arch

  1. Download a platform-specific installer (look at file extension) from the latest release
  2. Run the installer
  3. Launch the installed program

Run JAR:

A platform-specific JAR is provided for each OS/arch combinations

  1. Download a jvm-explorer.jar file for your OS/arch (look at file name) from the latest release
  2. Run the JAR (Java 11+)

Build And Run:

This approach will work on all platforms and architectures.

  1. Clone with Git

git clone https://github.com/Naton1/jvm-explorer.git

  1. Change into the project directory

cd jvm-explorer

  1. Run with Gradle (Java 11+)

./gradlew run

Troubleshooting

Two logs files application.log and agent.log are created at [User Home]/jvm-explorer/logs

Note: this uses the Java Attach API so any limitations will apply here.

Project Principles

Possible Enhancements

License

MIT License