← Back

About JVM Flags

An interactive catalog and learning site for HotSpot JVM command-line options across long-term support (LTS) Java releases.

Purpose

JVM Flags helps developers, operators, and students discover, compare, and understand JVM flags without digging through long manual pages for every release. The site maps each flag to a taxonomy of domains and categories (memory, garbage collection, JIT, diagnostics, and more) and shows how the option surface changes between Java versions.

The project pairs a static website in docs/ with a Maven test suite that verifies catalog entries against a real JDK. Flag data lives in versioned JSON graphs under json-graph-generator/src/main/resources/ and is published to docs/json/ for the browser.

Supported Java versions

Catalogs target Oracle HotSpot on these feature releases. LTS releases are highlighted on the home timeline and are the primary focus for learning and production tuning.

Release Flags in catalog Explore
Java 8 LTS 723 Flag graph
Java 11 LTS 654 Flag graph
Java 17 LTS 542 Flag graph
Java 21 LTS 520 Flag graph
Java 25 LTS 505 Flag graph

Vendor builds (GraalVM, Eclipse Temurin, etc.) may differ slightly; always confirm critical flags on the JDK you run in production.

What you can do on the site

Release timeline

Scroll the Java history from 1.0 to current releases. Select an LTS milestone to open its flag graph or evolution view.

Interactive flag graph

Zoom and pan a D3 tree of domains, categories, and flags. Switch to table view, expand or collapse branches, and open any flag for a short description.

Flag evolution

Pick a flag and see which Java versions recognize it, with availability and category changes over time.

Flag detail

Read the catalog description and copy a research prompt to look up deeper documentation in your preferred assistant or search tool.

JVM flag recipes

Start from a production scenario, then open a focused recipe with command examples and the flags that matter most.

Quiz game

Practice with twenty random questions drawn from the Java 25 catalog. Score at least 70% to pass and review missed flags afterward.

Catalog quality

Flag names, categories, and descriptions are aligned with Oracle’s official HotSpot documentation for each release (the java command reference, GC tuning guide, and troubleshooting guides). The Maven module jvmflags runs parameterized tests that launch java … -version with each testable flag so the catalog reflects what the running JDK actually accepts.

Source code and issue tracking: github.com/jabrena/jvm-flags.