| Abbreviation | Java Development Kit | Java Runtime Environment | Java Virtual Machine |
|---|
| Definition | JDK is a complete software development kit for DEVELOPING Java applications. It comprises JRE, JavaDoc, compiler, DEBUGGERS, etc. | JRE is a software package providing Java class LIBRARIES, JVM and all the required components to RUN the Java applications. | JVM is a platform-dependent, abstract machine comprising of 3 specifications - document describing the JVM implementation requirements, computer PROGRAM meeting the JVM requirements and instance object for executing the Java byte code and provide the runtime environment for execution. |
|---|
| Main Purpose | JDK is mainly used for code development and execution. | JRE is mainly used for environment creation to execute the code. | JVM provides specifications for all the implementations to JRE. |
|---|
| Tools provided | JDK provides tools like compiler, debuggers, etc for code development | JRE provides libraries and classes required by JVM to run the program. | JVM does not include any tools, but instead, it provides the specification for implementation. |
|---|
| Summary | JDK = (JRE) + Development tools | JRE = (JVM) + Libraries to execute the application | JVM = Runtime environment to execute Java byte code. |
|---|