Открыть сервис

Java Runtime Environment

Java Runtime Environment (JRE) — минимальный комплект программного обеспечения для запуска и исполнения приложений, написанных на языке программирования Java. JRE представляет собой часть более широкой платформы Java (Java Platform), которая также включает в себя Java Development Kit (JDK) для разработчиков. Основное назначение JRE — предоставить конечному пользователю среду, в которой байт-код Java (файлы с расширением .class или исполняемые JAR-архивы) может быть интерпретирован и выполнен на конкретной операционной системе без необходимости установки инструментов разработки.

Состав и архитектура

JRE включает три ключевых компонента: виртуальную машину Java (Java Virtual Machine, JVM), набор базовых библиотек классов (Java Class Library) и вспомогательные файлы, такие как файлы конфигурации и исполняемые загрузчики (например, java.exe в Windows или java в Unix-подобных системах).

JVM — это ядро среды выполнения. Она отвечает за загрузку байт-кода, его проверку (верификацию), интерпретацию или компиляцию в машинный код (через JIT-компиляторJust-In-Time), а также за управление памятью через автоматическую сборку мусора (garbage collection). Именно JVM обеспечивает кроссплатформенность Java: один и тот же байт-код может выполняться на любой платформе, для которой существует реализация JVM.

Библиотеки классов (Java SE API) содержат готовые модули для работы с коллекциями, вводом-выводом, сетью, графическим интерфейсом (AWT, Swing, JavaFX), XML, безопасностью и другими функциями. В состав JRE входят только те библиотеки, которые необходимы для выполнения программ; компилятор javac и другие утилиты разработчика в JRE отсутствуют — они входят исключительно в JDK.

История развития

Первая версия JRE была выпущена компанией Sun Microsystems в 1996 году вместе с JDK 1.0 и платформой Java 1.0. До версии Java 8 JRE распространялся как отдельный дистрибутив, который пользователи могли скачать с официального сайта Oracle (после поглощения Sun Microsystems в 2010 году) для запуска Java-приложений в браузере (Java-апплетов) или на рабочем столе.

Важной вехой стал выпуск Java 9 в сентябре 2017 года, когда компания Oracle внедрила систему модулей (Project Jigsaw). Это привело к изменению структуры JRE: вместо монолитной среды появились модульные образы, позволяющие создавать компактные пользовательские конфигурации времени выполнения (jlink). С Java 11 (сентябрь 2018 года) Oracle прекратила выпуск отдельного установочного пакета JRE для коммерческого использования, сосредоточившись на JDK, который теперь включает в себя полноценную среду выполнения. Для конечных пользователей, которым нужна только JRE, рекомендуется использовать OpenJDK или дистрибутивы сторонних вендоров (например, Adoptium Eclipse Temurin, Amazon Corretto, Azul Zulu).

Отличие JRE от JDK и JVM

В экосистеме Java часто путают три аббревиатуры. JVM — это только виртуальная машина, процесс, который исполняет байт-код. JRE — это JVM плюс библиотеки классов и вспомогательные утилиты для запуска программ. JDK — это JRE плюс инструменты разработки: компилятор javac, генератор документации javadoc, отладчик jdb, утилита jar для создания архивов и профилировщики. Таким образом, JDK — надмножество JRE; разработчик, установивший JDK, может и запускать, и создавать Java-приложения, тогда как пользователь JRE может только запускать готовые.

Способы распространения и установки

Традиционно JRE распространялась в виде установщика для Windows, пакета RPM/DEB для Linux или DMG-образа для macOS. После Java 8 Oracle предлагала онлайн-установщики и офлайн-пакеты. С переходом на модель долгосрочной поддержки (LTS-релизы каждые два года, начиная с Java 11) и изменением лицензионной политики Oracle (платная подписка для коммерческого использования), большинство разработчиков и системных администраторов перешли на бесплатные сборки OpenJDK.

Установка JRE также может быть выполнена через пакетные менеджеры: apt install openjdk-17-jre в Ubuntu/Debian, dnf install java-17-openjdk в Fedora/RHEL, brew install openjdk в macOS. Для Windows существуют автономные установщики от Oracle и сторонних проектов.

Применение

JRE используется повсеместно для запуска серверных приложений (например, серверов приложений Apache Tomcat, WildFly), корпоративного ПО (ERP-системы, CRM), научных и инженерных инструментов (MATLAB, IntelliJ IDEA в режиме запуска), а также программ для рабочего стола (например, LibreOffice имеет Java-компоненты). В прошлом JRE была критически важна для запуска Java-апплетов в браузерах, однако технология апплетов была объявлена устаревшей в Java 9 и окончательно удалена из платформы в Java 11 (март 2019 года) из-за проблем безопасности и распространения HTML5.

В серверной среде JRE часто устанавливается на выделенные машины, где требуется выполнение Java-приложений, но не требуется компиляция кода. Например, популярный инструмент автоматизации сборки Jenkins или поисковый движок Elasticsearch требуют наличия JRE (или JDK) в системе.

Безопасность и обновления

Исторически JRE была частой мишенью для злоумышленников, особенно в эпоху браузерных апплетов. Уязвимости в компонентах JRE приводили к удаленному выполнению кода. В ответ на это Oracle внедрила систему автоматического обновления, списки отзыва сертификатов и ужесточила настройки безопасности по умолчанию. Современные версии JRE (Java 8 и новее) включают усиленную проверку подписей кода, контроль целостности JAR-файлов и ограничения на выполнение неподписанного кода.

Альтернативы и будущее

Несмотря на появление альтернативных языков для JVM (Kotlin, Scala, Groovy), которые компилируются в тот же байт-код, сама JRE остается стандартом де-факто для запуска Java-приложений. Компания Oracle продолжает выпускать обновления безопасности для Java 8 и Java 11 (LTS-версии), а сообщество OpenJDK развивает платформу дальше. Выход Java 21 (сентябрь 2023 года) подтвердил жизнеспособность модели: JRE, встроенная в JDK, продолжает обеспечивать совместимость с миллионами существующих приложений.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →