---
title: "What is the difference between JDK, JRE, and JVM?"  
description: "What is the difference between JDK, JRE, and JVM?"  
author: "Ravi Vishwakarma"  
published: 2024-07-17  
updated: 2024-07-17  
canonical: https://www.mindstick.com/interview/33943/what-is-the-difference-between-jdk-jre-and-jvm  
category: "java"  
tags: ["java", "javac"]  
reading_time: 3 minutes  

---

# What is the difference between JDK, JRE, and JVM?

**JDK is the development platform, while JRE is for execution**. **JVM is the foundation**, or the heart of the Java programming language, and ensures the program's Java source code will be platform-agnostic. JVM is included in both JDK and JRE—Java programs won't run without it.

![What is the difference between JDK, JRE, and JVM?](https://www.mindstick.com/interviewquestion/937b0b34-7348-401a-9936-571d1259d160/images/09771491-58e2-4180-b4c7-3f4b4289256a.jpg)

Understanding the [**differences between JDK, JRE, and JVM**](https://www.mindstick.com/blog/10890/difference-between-jdk-jre-and-jvm) is fundamental to Java development:

**JVM (Java Virtual Machine):** [JVM](https://www.mindstick.com/blog/10893/internal-details-of-jvm-java-virtual-machine) is an abstract computing machine that provides a runtime environment in which Java bytecode can be executed. It converts Java bytecode into machine-specific instructions that the underlying operating system and hardware can understand. JVM is responsible for memory management, garbage collection, and other runtime services.

**JRE (Java Runtime Environment):** JRE is a software package that includes JVM, libraries, and other components necessary for running Java applications, but it does not include development tools such as compilers and debuggers. It is what end-users need to run Java applications on their systems.

**JDK (Java Development Kit):** JDK is a full-featured software development kit that includes JRE, compilers (like Javac), debuggers, tools for bundling applications, and other development tools. Developers use JDK to write, compile, and debug Java applications. It essentially includes everything that JRE has, plus additional tools needed for development.

In summary:

- **JVM** executes Java bytecode and provides runtime services.
- **JRE** is a runtime environment that includes JVM and necessary libraries for running Java applications.
- **JDK** is a development kit that includes JRE, development tools, and additional libraries for Java development.

## Answers

### Answer by Ravi Vishwakarma

**JDK is the development platform, while JRE is for execution**. **JVM is the foundation**, or the heart of the Java programming language, and ensures the program's Java source code will be platform-agnostic. JVM is included in both JDK and JRE—Java programs won't run without it.

![What is the difference between JDK, JRE, and JVM?](https://www.mindstick.com/interviewquestion/937b0b34-7348-401a-9936-571d1259d160/images/09771491-58e2-4180-b4c7-3f4b4289256a.jpg)

Understanding the [**differences between JDK, JRE, and JVM**](https://www.mindstick.com/blog/10890/difference-between-jdk-jre-and-jvm) is fundamental to Java development:

**JVM (Java Virtual Machine):** [JVM](https://www.mindstick.com/blog/10893/internal-details-of-jvm-java-virtual-machine) is an abstract computing machine that provides a runtime environment in which Java bytecode can be executed. It converts Java bytecode into machine-specific instructions that the underlying operating system and hardware can understand. JVM is responsible for memory management, garbage collection, and other runtime services.

**JRE (Java Runtime Environment):** JRE is a software package that includes JVM, libraries, and other components necessary for running Java applications, but it does not include development tools such as compilers and debuggers. It is what end-users need to run Java applications on their systems.

**JDK (Java Development Kit):** JDK is a full-featured software development kit that includes JRE, compilers (like Javac), debuggers, tools for bundling applications, and other development tools. Developers use JDK to write, compile, and debug Java applications. It essentially includes everything that JRE has, plus additional tools needed for development.

In summary:

- **JVM** executes Java bytecode and provides runtime services.
- **JRE** is a runtime environment that includes JVM and necessary libraries for running Java applications.
- **JDK** is a development kit that includes JRE, development tools, and additional libraries for Java development.


---

Original Source: https://www.mindstick.com/interview/33943/what-is-the-difference-between-jdk-jre-and-jvm

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
