Free tools Windows power users keep installed
One-click scans. No signup required.
For learning, writing, and compiling Java, install a JDK. It includes development tools and Java runtime capabilities. The JRE is the runtime environment described in Java’s traditional packaging model; the JVM is the component that executes Java bytecode. They are related, but they are not interchangeable—and the familiar idea that every JDK contains a separate jre/ folder is outdated for current JDKs.
What are the JDK, JRE, and JVM?
Think of them as three related roles: the JDK provides tools for developing Java programs, the JRE is the traditional package of components for running them, and the JVM executes their bytecode.
As an Amazon Associate I earn from qualifying purchases.
| Term | What it is | What it does |
|---|---|---|
| JDK | Java Development Kit | A Java distribution for development, with tools such as the javac compiler and a runtime implementation. Oracle’s JDK 8 documentation describes the JDK as including the JRE and development tools such as compilers and debuggers. |
| JRE | Java Runtime Environment | In the traditional distribution model, the runtime environment contained Java libraries, a JVM, and supporting components for running Java applications. |
| JVM | Java Virtual Machine | The abstract machine that executes Java bytecode at runtime. |
These are functional distinctions, not a promise about how a current installation’s folders are arranged. Oracle’s Java SE 8 documentation describes the older JDK/JRE packaging relationship; the later packaging change is important when installing Java today.
Recommended Free Tools
How Java source code reaches the JVM
A Java program normally moves through this sequence:
- You write Java source code.
- The JDK’s
javaccompiler translates the source into bytecode, typically stored in.classfiles. - A JVM executes that bytecode, while runtime libraries provide functionality the application needs.
The compiler and JVM have different jobs: javac is a development tool, while the JVM is part of a runtime implementation. Oracle’s Java Platform Overview describes the JVM as an abstract computing machine with an instruction set that manipulates memory at runtime, and explains that Java is normally compiled to the JVM’s instruction set and binary format.
Which one should you install to learn Java?
Choose a JDK if you will write, compile, and run Java programs. It gives you the compiler and other development tools as well as runtime capabilities. You generally do not download or install a JVM by itself for ordinary beginner setup.
Rank #2
If you only need to run an application, you do not need compiler tools, but the application still needs a compatible runtime. Some modern applications package or manage that runtime themselves. Oracle’s JDK migration guide points to jlink for creating dedicated runtimes rather than relying on a pre-installed system JRE.
Why the old JDK-contains-JRE diagram can mislead
The traditional relationship is useful for understanding roles: development tools sit alongside runtime components, and the runtime includes a JVM. But it should not be mistaken for the directory structure of every Java release.
- Before JDK 9, the JDK included the full JRE in a
jre/directory. - JDK 9 and 10 used modular runtime images.
- JDK 11 and later do not have a separate JRE image, according to Oracle’s JDK 26 migration guide.
So do not expect installing a current JDK to create the old nested jre/ folder. The terms remain useful for explaining what Java needs to develop and run programs, even though packaging has changed.
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 version that is right for every beginner. Oracle’s Java SE releases page, accessed October 7, 2026, lists JDK 27, 25, 21, 17, 11, and 8 as current Java SE versions and separately identifies other versions in sustaining support. Check the requirements that apply to you rather than choosing solely by the highest version number.
Rank #4
Java SE APIs and JDK APIs are not the same thing
Code that uses Java SE APIs targets the platform’s standard interfaces. Oracle notes that JDK APIs are specific to the JDK and are not necessarily available in every implementation of the Java SE Platform. If portability across Java implementations matters, check whether your code depends on JDK-specific APIs. See Oracle’s Java SE 26 and JDK 26 API overview.
Quick Recap
Best Value
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.




