JDK-JVM-JRE

Java Language Specification

Java language specification defines Java syntax.

The Java language specification is the technical documentation of java programming language syntax and semantics. Read complete java language specification at the URL below...
https://docs.oracle.com/javase/specs/

Java library is defined by the Java application programming interface that contains classes and interfaces for developing java programs. Read the list of java API at the URL below...
https://docs.oracle.com/en/java/javase/14/docs/api/index.html

JDK - Java Development Kit

JDK is the software for compiling and running java programs. The following figure demonstrates the relation between JDK, JVM, and JRE and their organization.

jdk-jre-jvm

JVM includes JRE (java runtime environment), javac(Java Compiler), java (interpreter/loader), Javadoc(documentation tool), jar (java archive tool), and other tools required for java development.

JRE (Java runtime environment)

JDK contains a set of programs for compiling, running, and testing java programs. Each of them can be invoked from the command line.

The program for running java program is called JRE.

JVM (JAVA Virtual Machine)

JVM is part of JDK and JRE both. JVM is responsible for running any java programs. A JVM is basically made up of 3 things...

  1. Java specification, which specifies the working of the virtual machine. This specification is implemented by SUN and other companies.
  2. An implementation is a program that meets the requirements of JVM.
  3. Runtime instance whenever run any java program by using java command on the command line interface, runtime instance created.