Answer
JVM: Executes Java bytecode.
JRE: JVM + libraries needed to run Java apps.
JDK: JRE + tools for developing Java applications.
JRE: JVM + libraries needed to run Java apps.
JDK: JRE + tools for developing Java applications.