Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

For learning or developing Java, install a JDK. It includes development tools such as the javac compiler and provides Java runtime capabilities. The JRE is the runtime environment that traditionally bundled the libraries and JVM needed to run Java applications; the JVM is the virtual machine that executes Java bytecode. These terms describe related but different parts of Java—and the old JDK-with-a-separate-JRE folder layout no longer applies to current JDK releases.

What do JDK, JRE, and JVM mean?

  • JDK (Java Development Kit): A Java distribution for development. It includes tools such as javac and other utilities, along with runtime capabilities. In its Java 8 documentation, Oracle describes the JDK as including the JRE and development tools such as compilers and debuggers. Oracle Java SE 8 documentation.
  • JRE (Java Runtime Environment): The runtime environment for running Java applications. In the traditional distribution model, it included Java libraries, a JVM, and supporting components. Oracle’s Java 8 documentation describes this older packaging model; it should not be taken to mean that current JDKs include a separate JRE download or folder.
  • JVM (Java Virtual Machine): The abstract machine that executes Java bytecode. Oracle describes it as an abstract computing machine with an instruction set that manipulates memory at runtime. Oracle Java Platform Overview.

How do they work together?

A typical Java program follows this path:

Java source code → javac compiler → bytecode (.class files) → JVM executes bytecode

The compiler is a JDK development tool. The JVM runs the resulting bytecode, while runtime libraries support the application. Java source is normally compiled to the JVM’s instruction set and binary format, as described in Oracle’s Java Platform Overview.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What is the difference in practice?

Term Main role What it means for you
JDK Develop and run Java applications Install this to write, compile, and run Java programs; it supplies tools such as javac.
JRE Run Java applications Historically, a separately installable runtime environment with libraries and a JVM. Current Oracle JDK releases do not have the old separate JRE image.
JVM Execute Java bytecode A runtime component, not usually the complete download a beginner installs on its own.

Which one should you install to learn Java?

Choose a JDK if you will write or compile Java code. It provides the development tools as well as runtime capabilities, so a learner does not need to find and install a standalone JVM separately.

If you only need to run an application, you do not need compiler tools. You do need a runtime compatible with that application, which may be packaged or managed by the application itself. Oracle’s migration guidance recommends using jlink to create dedicated runtimes rather than relying on a pre-installed system JRE. See Oracle’s JDK 26 migration guide.

Why does the old JDK-and-JRE diagram cause confusion?

The familiar picture of a JDK containing a JRE describes an older packaging arrangement, not the folder structure to expect from a current JDK installation. Oracle’s migration guide explains that before JDK 9, the JDK included the entire JRE in a jre/ directory. JDK 9 and 10 used modular runtime images, and JDK 11 and later do not have a separate JRE image. A modern JDK still includes development tools and runtime capabilities, but you should not expect a nested jre/ directory. Oracle JDK 26 migration guide.

Which Java release should you use?

Use the release required by your course, employer, or the application you need to run; there is no single correct release for every beginner. Oracle’s Java SE documentation lists releases including JDK 27, 25, 21, 17, 11, and 8, alongside versions in sustaining support. That list is time-sensitive and was accessed on October 7, 2026. Check Oracle’s Java SE releases page for its current listing, and follow any version requirement that applies to your work.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Are Java SE APIs and JDK APIs the same?

No. Java SE APIs define the standard platform, while JDK APIs are specific to a JDK and are not necessarily available in every Java SE implementation. Oracle notes this distinction in its Java SE 26 and JDK 26 API overview. If you are choosing libraries or writing code intended to work across implementations, check whether an API belongs to Java SE or is specific to a particular JDK.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.