What is difference between JDK, JRE and JVM?
JDK, JRE and JVM are three different components that help with the running of Java coded programs. In fact, these three are termed as core concepts of Java programming language. However, they are three different concepts.
JDK stands for Java Development Kit. It provides all the tools, executables, and binaries required to compile, debug and execute a Java Program. Hence, it is a core component of Java Environment. JDK is platform specific, which means that there is a different JDK for Windows, Mac, Unix, etc. JDK can also be called a superset of JRE, as it contains JRE with Java compiler, debugger and core classes.
JRE stands for Java Runtime Environment. It is primarily used to provide a runtime environment that facilitates the implementation of JVM. It primarily contains the set of libraries and other files that JVM requires at runtime. It is platform dependent.
JVM, on the other hand, stands for Java Virtual Machine. It is an abstract machine that provides a runtime environment where the Java bytecode can be executed. JVM is responsible for loading the code, verifying the code, and executing the code with the runtime environment. Like JDK and JRE, JVM is also platform dependent, as each platform has different specifics and configurations.
Basically, JDK helps compile Java source code, whereas JVM is what actually runs the Java code, and JRE is where the code runs.