JVM (Java Virtual Machine) - виртуальная машина, которая исполняет Java-байткод. Обеспечивает кроссплатформенность Java.
JRE (Java Runtime Environment) - среда выполнения Java, включающая JVM, стандартные библиотеки классов Java и вспомогательные файлы. Не содержит средств для разработки.
JDK (Java Development Kit) - комплект разработчика, включающий JRE, компилятор Java (javac), отладчик (jdb) и другие утилиты для создания, компиляции и отладки Java-приложений.
Связь между ними:
Таким образом: