В чём разница между jdk, jre и jvm?

Рейтинг: 5Ответов: 1Опубликовано: 08.03.2023

Есть три понятия - jdk, jre и jvm. Все эти понятия относятся к java, но в чём их разница?

Ответы

▲ 10Принят

JVM

Расшифровывается как Java Virtual Machine (виртуальная машина java). Она нужна для запуска уже скомпилированного кода (байт-кода), который хранится в файлах .class. jvm входит в состав jrejre пойдёт речь дальше) и является как иногда говорят "сердцем jre" или если говорить более серьёзно, ключевым компонентом jre.

JRE

Расшифровывается как Java Runtime Environment (среда выполнения java). jre нужна для запуска уже готовых программ. jre включает в себя jvm и всё, что нужно для запуска java-программ. jre содержит в себе стандартные java-библиотеки (например, java.util, java.awt, java.io, все их не перечислить, их много).

Если кратко, то:

jre = jvm + библиотеки

Замечание: с Java 11 Oracle больше не поставляет JRE.

JDK

Расшифровывается как Java Development Kit (комплект для разработки на java). jdk включает в себя jre и инструменты для разработки. Что за инструменты? Все их я перечислять не буду, но вот некоторые из них:

  • javac (компилятор)
  • jdb (отладчик)
  • javadoc (утилита для генерации документации по коду)
  • serialver (утилита для генерации поля serialVersionUID)
  • многие другие...

Все эти инструменты не нужны пользователю java-приложений, но нужны разработчику.

Если кратко, то:

jdk = jvm + библиотеки + инструменты для разработки

Но тоже самое можно записать даже короче:

jdk = jre + инструменты разработки