JVM, JDK and JRE the backbone of java language. Each component work separately. The attributes of each one of them is given below:
JVM (Java Virtual Machine):
JVM is an abstract machine. It is a specification that provides run-time environment in which java bytecode can be executed. It follows three notations:
- Specification: It is a document that describes the implementation of the Java virtual machine. It is provided by Sun and other companies.
- Implementation: It is a program that meets the requirements of JVM specification.
- Runtime instance: An instance of JVM is created whenever you write a java command on the command prompt and run the class.
JRE (Java Runtime environment):
JRE refers to a runtime environment in which java bytecode can be executed. It implements the JVM (Java Virtual Machine) and provides all the class libraries and other support files that JVM uses at runtime. So JRE is a software package that contains what is required to run a Java program. Basically, it’s an implementation of the JVM which physically exists.
JDK(Java Development Kit):
It is the tool necessary to compile, document and package Java programs. The JDK completely includes JRE which contains tools for Java programmers. The Java Development Kit is provided free of charge. Along with JRE, it includes an interpreter/loader, a compiler (javac), an archiver (jar), a documentation generator (javadoc) and other tools needed in Java development. In short, it contains JRE + development tools.