Differences between JVM, JRE, and JDK

Dan Dias Abeyesinghe
Level Up Coding
Published in
3 min readSep 7, 2021

--

Photo by Blake Connally on Unsplash

Java Virtual Machine

This is an abstract machine (as it is not physically there) which provides a runtime environment for Java bytecode.

This loads the code, verifies, and execute the code.

This also can run other programs written in different languages which are compiled in Java bytecode.

JVM, JRE, and JDK all are platform dependent as it requires different configuration for different OS. However, it is important to note that Java is platform independent.

Java Virtual Machine

The JIT (Just in time) complier coverts Java bytecode to machine code.

You can refer my article on Java Virtual Machine and Its architecture to get a better and more detailed understanding of this here. I have in depth discussed about the Class loader, Execution engine and many more in that article.

Java Runtime Environment

The JRE(Java Runtime Environment ) is software that is used to develop Java applications.

This is used to provide a runtime environment and it is an implementation of the Java Virtual Machine.

This however exists physically unlike the Java Virtual Machine.

Java Runtime Environment

Java Development Kit

The JDK (Java Development Kit) is a software development environment where Java applications are developed.

This contains the JRE + Development tools

This also exist physically.

There are several different types of platforms released by Oracle as well.

The JDK is like the full package that is necessary to develop a Java application as it has its own private Java Virtual Machine, an interpreter, a compiler, an archiver etc.

Java Development Kit

I hope this article has helped you to understand better about the differences between the JVM,JRE and JDK as it is confused by many mostly. You can also check my other article I have written on Java Virtual Machine and its architecture to get a clear and a better in-depth understanding of it and if you wish to gain more knowledge about JVM.

Please do feel free to provide a feedback on the above and do follow for more articles related to this and many more!

--

--