Ответ
Это три взаимосвязанных, но различных компонента Java-платформы:
-
JVM (Java Virtual Machine) — виртуальная машина. Это исполняемая среда, которая выполняет байт-код Java (.class файлы). Ее основные задачи:
- Загрузка классов.
- Верификация байт-кода.
- Выполнение кода (интерпретация или JIT-компиляция).
- Управление памятью (сборка мусора).
- JVM — это то, что непосредственно запускает Java-программу.
-
JRE (Java Runtime Environment) — среда выполнения. Это набор для запуска Java-приложений. Включает:
- JVM.
- Библиотеки классов Java (Java Class Library, например,
java.lang,java.util). - Другие вспомогательные файлы.
- JRE = JVM + Библиотеки. Ее достаточно, чтобы запускать скомпилированные программы.
-
JDK (Java Development Kit) — комплект разработчика. Это набор для разработки Java-приложений. Включает:
- JRE (а значит, и JVM).
- Компилятор (
javac). - Инструменты для разработки и отладки (
javadoc,jdb,jarи др.). - JDK = JRE + Инструменты разработки. Необходим для написания и компиляции кода.
Итог:
- Разработчик устанавливает JDK.
- Пользователь, которому нужно только запустить приложение, устанавливает JRE.
- JVM — это ядро, работающее внутри JRE.