---
title: "What are the differences between JVM, JRE and JDK in Java?"  
description: "What are the differences between JVM, JRE and JDK in Java?"  
author: "Mukul Goenka"  
published: 2021-11-21  
canonical: https://www.mindstick.com/interview/33839/what-are-the-differences-between-jvm-jre-and-jdk-in-java  
category: "java"  
tags: ["java", "jdk", "jre"]  
reading_time: 3 minutes  

---

# What are the differences between JVM, JRE and JDK in Java?

\

| **Criteria** | **JDK** | **JRE** | **JVM** |
| --- | --- | --- | --- |
| **Abbreviation** | Java Development Kit | Java Runtime Environment | Java Virtual Machine |
| **Definition** | JDK is a complete software development kit for developing Java applications. It comprises JRE, JavaDoc, compiler, debuggers, etc. | JRE is a software package providing Java class libraries, JVM and all the required components to run the Java applications. | JVM is a platform-dependent, abstract machine comprising of 3 specifications - document describing the JVM implementation requirements, computer program meeting the JVM requirements and instance object for executing the Java byte code and provide the runtime environment for execution. |
| **Main Purpose** | JDK is mainly used for code development and execution. | JRE is mainly used for environment creation to execute the code. | JVM provides specifications for all the implementations to JRE. |
| **Tools provided** | JDK provides tools like compiler, debuggers, etc for code development | JRE provides libraries and classes required by JVM to run the program. | JVM does not include any tools, but instead, it provides the specification for implementation. |
| **Summary** | JDK = (JRE) + Development tools | JRE = (JVM) + Libraries to execute the application | JVM = Runtime environment to execute Java byte code. |

Thank you.

## Answers

### Answer by Mukul Goenka

\

| **Criteria** | **JDK** | **JRE** | **JVM** |
| --- | --- | --- | --- |
| **Abbreviation** | Java Development Kit | Java Runtime Environment | Java Virtual Machine |
| **Definition** | JDK is a complete software development kit for developing Java applications. It comprises JRE, JavaDoc, compiler, debuggers, etc. | JRE is a software package providing Java class libraries, JVM and all the required components to run the Java applications. | JVM is a platform-dependent, abstract machine comprising of 3 specifications - document describing the JVM implementation requirements, computer program meeting the JVM requirements and instance object for executing the Java byte code and provide the runtime environment for execution. |
| **Main Purpose** | JDK is mainly used for code development and execution. | JRE is mainly used for environment creation to execute the code. | JVM provides specifications for all the implementations to JRE. |
| **Tools provided** | JDK provides tools like compiler, debuggers, etc for code development | JRE provides libraries and classes required by JVM to run the program. | JVM does not include any tools, but instead, it provides the specification for implementation. |
| **Summary** | JDK = (JRE) + Development tools | JRE = (JVM) + Libraries to execute the application | JVM = Runtime environment to execute Java byte code. |

Thank you.


---

Original Source: https://www.mindstick.com/interview/33839/what-are-the-differences-between-jvm-jre-and-jdk-in-java

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
