The JVM runs compiled Java code, the JRE bundles the JVM with core libraries needed to run programs, and the JDK adds the development tools needed to write and compile Java code in the first place.
These three terms describe nested layers of the Java platform, each building on the one before it.
The engine that actually executes Java bytecode, translating it into instructions your specific operating system and hardware understand. This is what makes Java "write once, run anywhere" — the same bytecode runs on any platform with a compatible JVM.
Bundles the JVM together with the standard Java class libraries needed to actually run a Java application. If you only need to run Java programs (not write them), the JRE alone used to be enough.
Includes everything in the JRE, plus development tools — the compiler (javac), debugger, and other utilities needed to write, compile, and build Java programs. Anyone developing Java software needs the JDK, not just the JRE.
Last reviewed: September 2026