JVM JRE JDK Architecture | JVM vs JRE vs JDK

JVM (Java Virtual Machine):

JVM is a program / virtual machine that provides the run-time environment in which bytecode can be executed. JVMs are available for different kinds of hardware and software platforms. The same bytecode can be used on all JVMs for all platforms which makes Java platform independent.

The main task of JVM:

  • Search and locate the required files.
  • Convert byte code into executable code.
  • Allocate the memory into the ram
  • Execute the code.
  • Delete the executable code.

JRE (Java Runtime Environment):

        JVM + java runtime libraries + java package classes (e.g. util, lang, etc). JRE contains class libraries and other supporting files with JVM. It does not provide any development tools like a compiler, debugger, etc.


JDK (Java Development Kit):

       JRE+ development tool (compiler, debugger, etc.). JDK facilitates tools to develop the application and JRE to execute the application.