|
| 1 | +--- |
| 2 | +title: Java JDK, JRE and JVM |
| 3 | +description: Definations of JDK, JRE and JVM |
| 4 | +--- |
| 5 | + |
| 6 | +import { Heading } from '@/components/Heading' |
| 7 | +import Link from 'next/link' |
| 8 | + |
| 9 | + |
| 10 | +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. |
| 11 | + |
| 12 | +## What is JVM? |
| 13 | + |
| 14 | +**JVM (Java Virtual Machine)** is an abstract machine that enables your computer to run a Java program. |
| 15 | + |
| 16 | +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). |
| 17 | + |
| 18 | +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. |
| 19 | + |
| 20 | +<div className="mt-8" /> |
| 21 | +<div align="center"> |
| 22 | +<img className="flex-shrink" src="/img/docs/jvm-jre-jdk/1.svg" /> |
| 23 | + |
| 24 | +**Working of a Java Program** |
| 25 | + |
| 26 | +</div> |
| 27 | + |
| 28 | +If you are interested in learning about JVM Architecture, visit [The JVM Architecture Explained](https://dzone.com/articles/jvm-architecture-explained). |
| 29 | + |
| 30 | +## What is JRE? |
| 31 | + |
| 32 | +**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. |
| 33 | + |
| 34 | +JRE is the superset of JVM. |
| 35 | + |
| 36 | +<div className="mt-8"/> |
| 37 | +<div align="center"> |
| 38 | +<img className="flex-shrink" src="/img/docs/jvm-jre-jdk/2.svg" /> |
| 39 | + |
| 40 | +**Java Runtime Environment** |
| 41 | + |
| 42 | +</div> |
| 43 | + |
| 44 | +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). |
| 45 | + |
| 46 | +## What is JDK? |
| 47 | + |
| 48 | +**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. |
| 49 | + |
| 50 | +In addition to JRE, JDK also contains a number of development tools (compilers, JavaDoc, Java Debugger, etc). |
| 51 | + |
| 52 | +<div className="mt-8" /> |
| 53 | +<div align="center"> |
| 54 | + <img className="flex-shrink" src="/img/docs/jvm-jre-jdk/3.svg" /> |
| 55 | + |
| 56 | + **Java Development Kit** |
| 57 | + |
| 58 | +</div> |
| 59 | + |
| 60 | +If you want to develop Java applications, [download JDK](http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html). |
| 61 | + |
| 62 | +## Relationship between JVM, JRE, and JDK. |
| 63 | + |
| 64 | +<div className="mt-8" /> |
| 65 | +<div align="center"> |
| 66 | + <img className="flex-shrink" src="/img/docs/jvm-jre-jdk/4.svg" /> |
| 67 | + |
| 68 | + **Relationship between JVM, JRE, and JDK** |
| 69 | + |
| 70 | +</div> |
0 commit comments