ClassTrace Explorer captures JVM class-resolution activity and turns it into an interactive, self-contained HTML graph. It helps explain startup behavior, application/runtime boundaries, dependency coupling, and unexpectedly loaded code.
The 2.x release is written in TypeScript and rendered with React Flow. Python, Graphviz, and a report server are not required.

The built CLI supports Node.js 18 or newer.
git clone https://github.com/menzew/class-trace-explorer.git
cd class-trace-explorer
npm ci
npm run build
npm install -g .
The installed command remains clgrapher for compatibility with earlier releases.
Capture an executable JAR and write my-app.html:
clgrapher run my-app --jar path/to/application.jar
Capture a main class from a classpath:
clgrapher run my-app --cp build/classes com.example.Main
Pass a complete Java invocation after --:
clgrapher run my-app -- -cp build/classes com.example.Main argument
Open the resulting HTML file directly in a browser. Add --view to open it
automatically.
Capture with JDK 9 or newer:
java '-Xlog:class+resolve=debug,class+load=info:file=classload.txt' \
-jar application.jar
clgrapher graph classload.txt application
For JDK 8 and earlier:
java -XX:+TraceClassResolution -jar application.jar > classload.txt
clgrapher graph classload.txt application
For imported traces, identify application code with repeatable hints:
clgrapher graph classload.txt application \
--app-prefix com.example \
--app-source /work/application.jar
| Option | Purpose |
|---|---|
-abrv | Start with abbreviated package labels. |
-f, --filter <text> | Start with matching class names excluded. |
--view | Open the generated report. |
--java <path> | Select the Java launcher for run. |
--keep-trace <file> | Preserve the temporary trace captured by run. |
--app-prefix <package> | Mark a package prefix as application-owned; repeatable. |
--app-source <path> | Mark a class directory or JAR as application-owned; repeatable. |
Run clgrapher --help or clgrapher <command> --help for the complete command
reference.
The repository includes complete, interactive reports for a minimal HelloWorld program, SwingSet3, and Apache NetBeans:
These are the same self-contained reports produced by the CLI, with all search, filtering, expansion, directed-edge, and detail views enabled. GitHub's file viewer displays HTML source; the links above run from a separate public demo repository while this source repository is under private review. See examples/README.md for capture commands and report notes.
npm ci
npm run check
npm run dev
npm run build creates the single-file web template at dist/web/index.html
and the CLI at dist/cli/bin.js.
ClassTrace Explorer is available under the BSD 3-Clause License.
TypeScript
99.4%
ClassTrace Explorer captures JVM class-resolution activity and turns it into an interactive, self-contained HTML graph. It helps explain startup behavior, application/runtime boundaries, dependency coupling, and unexpectedly loaded code.
The 2.x release is written in TypeScript and rendered with React Flow. Python, Graphviz, and a report server are not required.

The built CLI supports Node.js 18 or newer.
git clone https://github.com/menzew/class-trace-explorer.git
cd class-trace-explorer
npm ci
npm run build
npm install -g .
The installed command remains clgrapher for compatibility with earlier releases.
Capture an executable JAR and write my-app.html:
clgrapher run my-app --jar path/to/application.jar
Capture a main class from a classpath:
clgrapher run my-app --cp build/classes com.example.Main
Pass a complete Java invocation after --:
clgrapher run my-app -- -cp build/classes com.example.Main argument
Open the resulting HTML file directly in a browser. Add --view to open it
automatically.
Capture with JDK 9 or newer:
java '-Xlog:class+resolve=debug,class+load=info:file=classload.txt' \
-jar application.jar
clgrapher graph classload.txt application
For JDK 8 and earlier:
java -XX:+TraceClassResolution -jar application.jar > classload.txt
clgrapher graph classload.txt application
For imported traces, identify application code with repeatable hints:
clgrapher graph classload.txt application \
--app-prefix com.example \
--app-source /work/application.jar
| Option | Purpose |
|---|---|
-abrv | Start with abbreviated package labels. |
-f, --filter <text> | Start with matching class names excluded. |
--view | Open the generated report. |
--java <path> | Select the Java launcher for run. |
--keep-trace <file> | Preserve the temporary trace captured by run. |
--app-prefix <package> | Mark a package prefix as application-owned; repeatable. |
--app-source <path> | Mark a class directory or JAR as application-owned; repeatable. |
Run clgrapher --help or clgrapher <command> --help for the complete command
reference.
The repository includes complete, interactive reports for a minimal HelloWorld program, SwingSet3, and Apache NetBeans:
These are the same self-contained reports produced by the CLI, with all search, filtering, expansion, directed-edge, and detail views enabled. GitHub's file viewer displays HTML source; the links above run from a separate public demo repository while this source repository is under private review. See examples/README.md for capture commands and report notes.
npm ci
npm run check
npm run dev
npm run build creates the single-file web template at dist/web/index.html
and the CLI at dist/cli/bin.js.
ClassTrace Explorer is available under the BSD 3-Clause License.
TypeScript
99.4%