Scroll to top

jdk vs jre vs jvm

In order to understand JDK vs JRE vs JVM. You need to first understand each and every term. So let’s start by defining JDK (Java Development Kit), JRE (Java Runtime Environment), and JVM (Java Virtual Machine).

JDK (Java Development Kit)

JDK contains everything that will be required to develop and run Java application.

JRE (Java Runtime Environment)

JRE contains everything required to run Java application which has already been compiled. It doesn’t contain the code library required to develop Java application.

JVM (Java Virtual Machine)

JVM is a virtual machine which works on top of your operating system to provide a recommended environment for your compiled
Java code. JVM only works with bytecode. Hence you need to compile your Java application(.java) so that it can be converted to bytecode format (also known as the .class file).

Which then will be used by JVM to run an application. JVM only provide the environment needed to executed Java Bytecode.

JDK vs JRE vs JVM

The below chart shows the different features of each of the Java technologies.

JDK vs JRE vs JVM*Image Courtesy: Oracle Corporation

Now as per the diagram you can identify what is the difference.

JRE = JVM + Required Library to run Application.

JDK = JRE + Required Library to develop Java Application.

Java Portability

In order to understand portability in Java, you need to understand what happens to java code from start to finish.

  • Java Source Code (Written by Developer) (Machine Neutral)
  • Compiled Code / Byte Code (Compiled by javac). (Machine Neutral)
  • Byte Code executed (Executed by JVM) (Machine Specific)

In step 2, javac (Java Compiler) converts Java code to bytecode. This can be moved to any machine(Windows / Linux) and executed by JVM. JVM reads the bytecode and generates machine specific code. In order to generate machine-specific code, JVM needs to be machine specific. So every type of Machine(Windows / Linux / Mac) has a specific JVM. So in this way, the coder
doesn’t need to bother with generating bytecode. JVM takes care of portability. So the final answer is Java is Portable
but JVM is Machine Specific.

 

Author avatar
JBT
https://javabeginnerstutorial.com/

33 comments

  1. Sindhu

    Cannot download the Ebook .please help me
    Also, is it up to the date ..?

  2. Hussain

    So much beginer content.

  3. Girish Barhate

    very Easy to learn

  4. apexa

    it is really very helpful thank you..

  5. Ranjita

    So clear and easy to understand, Thank you

  6. Nabanita Barik

    Thanks .. it’s cool and crystal clear to understand easily

  7. pranit

    very helpful and informative article, you have shared a great points here between JDK, JRE and JVM. To know these terms you must know the exact difference between them, very good. Thanks a lot for sharing!

  8. Subas

    Difference between JVM,JRE,JDK

    JRE = JVM + Required Library to run Application.

    JDK = JRE + Required Library to develop Java Application.

    JVM = JVM only provide the environment needed to executed Java Bytecode.

  9. Shashikala R

    Awesome stuff. Looks like someone is finally interested in sharing the knowledge rather than hiding behind pretentious pile of jargon

Post a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.