The JDK, the JRE & their tools
# The JDK vs the JRE, and one note per JDK command-line tool, from javac to jdb.
❯ cat documents/
-
The JDK, the JRE & their tools
Concept
2026-08-09
What the JDK ships beyond the compiler — the runtime, and the full catalog of command-line tools grouped by purpose.
-
jar — archives & manifests
Concept
2026-08-09
The jar tool — creating and inspecting archives, MANIFEST.MF semantics, executable jars, and multi-release jars.
-
java — the launcher
Concept
2026-08-09
The java launcher — running classes, jars, modules and source files, plus the JVM flag families that matter.
-
javac — the Java compiler
Concept
2026-08-09
The JDK compiler — compilation model, classpath vs module path, --release, annotation processing, and lint flags.
-
javadoc — API documentation
Concept
2026-08-09
The javadoc tool — doc comments and tags, doclets, JEP 413 snippets, and publishing API docs from builds.
-
javap — the class file disassembler
Concept
2026-08-09
The javap disassembler — reading bytecode and the constant pool to verify what the compiler actually generated.
-
jcmd — the JVM diagnostic command hub
Concept
2026-08-09
Sends diagnostic commands to a running JVM — flags, heap info, thread dumps, JFR control — superseding most older j* tools.
-
jconsole — the JMX console
Concept
2026-08-09
The JDK's Swing GUI for browsing JMX MBeans and live memory, thread and class charts on local or remote JVMs.
-
jdb — the CLI debugger and JDWP
Concept
2026-08-09
The JDK's command-line debugger and the JDWP/JDI machinery behind it — the same wire protocol every IDE debugger speaks.
-
jdeps — dependency analysis
Concept
2026-08-09
The jdeps analyser — class, package and module-level dependencies, JDK-internal usage, and feeding jlink.
-
JDK Flight Recorder & Mission Control
Concept
2026-08-09
Always-on, low-overhead JVM event recording (JFR) and its analysis GUI (JMC) — the built-in production profiling stack.
-
jlink — custom runtime images
Concept
2026-08-09
Assembles a trimmed, self-contained Java runtime from a set of modules, replacing the standalone JRE for application distribution.
-
jmap — heap histograms and heap dumps
Concept
2026-08-09
Produces class histograms and full hprof heap dumps for leak analysis in MAT or VisualVM, at a real pause cost on large heaps.
-
jmod — the JMOD format and tool
Concept
2026-08-09
Link-time packaging format for modules that can carry native libraries and config, consumed by jlink but never shipped to run.
-
jpackage — native installers and app images
Concept
2026-08-09
Packages a Java application with a bundled runtime into platform-native installers (deb, rpm, msi, exe, dmg, pkg) per JEP 392.
-
jps — listing JVM processes
Concept
2026-08-09
Lists running JVMs with pids, main classes and arguments, backed by the JVM's shared-memory perfdata files.
-
jshell — the Java REPL
Concept
2026-08-09
The jshell REPL — exploratory snippets, /commands, feedback modes, and scripting use.
-
jstack — thread dumps
Concept
2026-08-09
Captures platform-thread stack traces with lock and deadlock information; superseded by jcmd, and blind to virtual threads.
-
jstat — GC and class-loading statistics
Concept
2026-08-09
Samples HotSpot perfdata counters at intervals — GC utilisation, class loading, compilation — as a lightweight live-monitoring CLI.
-
jwebserver — the minimal static file server
Concept
2026-08-09
JDK 18's zero-config static HTTP file server (JEP 408) for prototyping and local file serving, not for production.
-
keytool — keystores and certificates
Concept
2026-08-09
Manages PKCS12 keystores and truststores — keypairs, CSRs, CA imports, cacerts — and underpins most JVM TLS debugging.