---
title: Java JDK, JRE and JVM
description: Definations of JDK, JRE and JVM
---

import NextImage from 'next/image'
 

In this tutorial, you will learn about [JDK](#what-is-jdk), [JRE](#what-is-jre), and [JVM](#what-is-jvm). You will also learn the key differences between them.

## What is JVM?

**JVM (Java Virtual Machine)** is an abstract machine that enables your computer to run a Java program.

When you run the Java program, Java compiler first compiles your Java code to bytecode. Then, the JVM translates bytecode into native machine code (set of instructions that a computer's CPU executes directly).

Java is a **platform-independent language**. It's because when you write Java code, it's ultimately written for JVM but not your physical machine (computer). Since JVM ​executes the Java bytecode which is platform-independent, Java is platform-independent.

<div className="mt-8" />
<div align="center">
  
<NextImage
      className="object-cover object-center shadow-xl"
      alt="Working of a Java Program"
      src={require('@/img/docs/jvm-jre-jdk/1.svg').default}
      width={730}
      height={99}
      layout="responsive"
      blurDataURL={require('@/img/docs/jvm-jre-jdk/1.svg').default}
      placeholder="blur"
      loading="lazy"
      quality={100}
    />

<p align="center" className="text-base text-gray-600 font-medium">Working of a Java Program</p>
</div>

If you are interested in learning about JVM Architecture, visit [The JVM Architecture Explained](https://dzone.com/articles/jvm-architecture-explained).

## What is JRE?

**JRE (Java Runtime Environment)** is a software package that provides Java class libraries, **Java Virtual Machine (JVM)**, and other components that are required to run Java applications.

JRE is the superset of JVM.

<div className="mt-8"/>

<div align="center"  className="lg:px-36">

<NextImage
      className="object-cover object-center shadow-xl"
      alt="Java Runtime Environment"
      src={require('@/img/docs/jvm-jre-jdk/2.svg').default}
      width={354}
      height={99}
      layout="responsive"
      blurDataURL={require('@/img/docs/jvm-jre-jdk/2.svg').default}
      placeholder="blur"
      loading="lazy"
      quality={100}
    />

<p align="center" className="text-base text-gray-600 font-medium">Java Runtime Environment</p>

</div>

If you need to run Java programs, but not develop them, JRE is what you need. You can download JRE from [Java SE Runtime Environment 8 Downloads page](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html).

## What is JDK?

**JDK (Java Development Kit)** is a software development kit required to develop applications in Java. When you download JDK, JRE is also downloaded with it.

In addition to JRE, JDK also contains a number of development tools (compilers, JavaDoc, Java Debugger, etc).

<div className="mt-8" />

<div align="center"  className="lg:px-36">
<NextImage
      className="object-cover object-center shadow-xl"
      alt="Java Development Kit"
      src={require('@/img/docs/jvm-jre-jdk/3.svg').default}
      width={410}
      height={98}
      layout="responsive"
      blurDataURL={require('@/img/docs/jvm-jre-jdk/3.svg').default}
      placeholder="blur"
      loading="lazy"
      quality={100}
    />

<p align="center" className="text-base text-gray-600 font-medium">Java Development Kit</p>

</div>

If you want to develop Java applications, [download JDK](http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html).

## Relationship between JVM, JRE, and JDK.

<div className="mt-8" />
<div align="center" className="lg:px-36">
<NextImage
      className="object-cover object-center shadow-xl "
      alt="Relationship between JVM, JRE, and JDK"
      src={require('@/img/docs/jvm-jre-jdk/4.svg').default}
      width={411}
      height={346}
      layout="responsive"
      blurDataURL={require('@/img/docs/jvm-jre-jdk/4.svg').default}
      placeholder="blur"
      loading="lazy"
      quality={100}
    />

<p align="center" className="text-base text-gray-600 font-medium">Relationship between JVM, JRE, and JDK</p>

</div>