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

Java Runtime Environment

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

Назначение и состав

Основная функция JRE — обеспечение платформонезависимого исполнения Java-байткода. Исходный код Java компилируется в промежуточное представление (байткод), которое не зависит от операционной системы и архитектуры процессора. JRE интерпретирует этот байткод через JVM, адаптируя его к конкретной аппаратной платформе.

В состав JRE входят следующие ключевые компоненты:

Отличие от JDK

JRE является подмножеством Java Development Kit. JDK дополнительно содержит компилятор javac, утилиты для создания документации (javadoc), упаковки архивов (jar), трассировки и профилирования. Современные версии JDK (начиная с JDK 9) включают JRE внутри себя, однако отдельная поставка JRE для конечных пользователей была официально прекращена компанией Oracle. Начиная с Java 11, пользователям, которым требуется только запуск приложений, рекомендуется использовать JDK или специализированные сборки JRE от сторонних вендоров.

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

Первая версия среды выполнения появилась вместе с Java 1.0 в 1996 году. На ранних этапах JRE распространялась как отдельный продукт, ориентированный на запуск апплетов в веб-браузерах. В 2000-х годах JRE стала стандартным компонентом для работы десктопных приложений на Java, таких как клиенты банковских систем и корпоративные программы.

В 2010 году компания Oracle приобрела Sun Microsystems, став основным разработчиком Java. В 2018 году с выходом Java 11 изменилась модель лицензирования: Oracle перешла на шестимесячный цикл релизов и прекратила выпуск самостоятельных установщиков JRE. Сообщество продолжило развитие открытых реализаций, среди которых наиболее известен проект OpenJDK. На его основе создаются сборки от различных организаций, например Eclipse Adoptium (Temurin), Amazon Corretto, Azul Zulu.

Механизм работы

Процесс выполнения Java-приложения в JRE можно описать следующим образом:

  1. Загрузчик классов считывает .class-файлы с байткодом.
  2. Верификатор проверяет корректность кода на соответствие правилам безопасности.
  3. Интерпретатор JVM последовательно выполняет инструкции байткода.
  4. Компилятор JIT (Just-In-Time) преобразует часто исполняемые фрагменты в машинный код для повышения производительности.
  5. Система сборки мусора автоматически освобождает память от неиспользуемых объектов.

JRE обеспечивает изоляцию приложений от операционной системы, что предотвращает прямой доступ к аппаратным ресурсам без проверки через системные библиотеки и механизмы безопасности.

Применение

JRE используется повсеместно, где требуется кроссплатформенный запуск приложений:

  • Серверные технологии — большинство корпоративных систем (банковские, страховые, государственные порталы) работают на серверах приложений, таких как Apache Tomcat, WildFly, Jetty, которые требуют установленной JRE или JDK.
  • Мобильная платформа Android — использует собственную реализацию виртуальной машины (Android Runtime, ранее Dalvik), несовместимую напрямую со стандартной JRE, однако синтаксис языка и часть библиотек совпадают.
  • Научные и аналитические вычисления — инструменты вроде Apache Hadoop, Elasticsearch, Apache Spark написаны на Java и требуют среды выполнения.
  • Десктопные приложения — ряд программ (например, интегрированная среда разработки IntelliJ IDEA, офисный пакет LibreOffice в некоторых конфигурациях) используют Java-компоненты.

Безопасность

Вопросы безопасности JRE исторически вызывали критику. В 2010-х годах регулярно обнаруживались уязвимости, связанные с запуском апплетов в браузере, что приводило к массовым атакам через вредоносные веб-страницы. В ответ Oracle ужесточила настройки безопасности, а в 2016 году объявила о прекращении поддержки Java-плагина в браузерах. Окончательно технология апплетов была удалена из JRE в Java 11.

Современная JRE включает многоуровневую систему защиты: контроль доступа на основе политик, криптографические библиотеки, проверку цифровых подписей кода и изолированную среду выполнения.

Распространение и лицензирование

До Java 8 JRE распространялась бесплатно для личного и коммерческого использования. Начиная с Java 11, Oracle предоставляет сборки JDK под лицензией Oracle Technology Network License Agreement, которая предусматривает плату за использование в коммерческих целях. Бесплатные альтернативы доступны через проект OpenJDK, распространяемый под лицензией GNU GPL v2 с исключением для связывания (Classpath Exception).

Для конечных пользователей, которым требуется только запуск Java-приложений, установка полного JDK может быть избыточной. В таких случаях используются урезанные дистрибутивы, например, jlink позволяет создать пользовательский образ среды выполнения, включающий только необходимые модули. Это позволяет уменьшить размер приложения и снизить требования к ресурсам.

Современное состояние

К середине 2020-х годов JRE перестала быть самостоятельным продуктом в экосистеме Java. Разработчики перешли на поставку приложений вместе с собственными средами выполнения, используя инструменты вроде jpackage для создания нативных установщиков. Это упрощает развертывание, устраняя необходимость отдельной установки JRE на компьютер пользователя.

Несмотря на это, термин «Java Runtime Environment» продолжает использоваться для обозначения совокупности компонентов, необходимых для исполнения Java-кода, и встречается в документации, конфигурационных файлах и системных требованиях многих программных продуктов.

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

На главную BFOmetr →