Так много JDK… Какой использовать и чем это грозит?
От переводчика: Решение перевести эту статью пришло не само собой — скорее это вынужденная мера :). К нам, как к вендорам фреймворка CUBA, обращаются с этим вопросом с завидной регулярностью. Безусловно, для нас это тоже крайне важная тема, и в ответ на последние изменения мы подняли тестовые стенды как на Oracle JDK, так и на Liberica JDK — эта мера на данный момент ограждает наших пользователей от непредвиденных лицензионных трат. Однако, эта тема еще не закрыта, и мы продолжаем внимательно следить за развитием событий, и, кто знает, возможно нам придется добавлять стенды для еще каких сборок JDK уже в следующем году.
Статья под катом подкупает тем, что она лаконично описывает проблематику и наиболее популярные JDK с их особенностями.
Недавно Oracle заявили, что эволюция Java кардинально изменится благодаря переходу на «Release Train» — новому подходу к выкатыванию версий. Это изменение также повлекло за собой перемены в плане поддержки версий, которая теперь будет осуществляться не для всех, а только для LTS версий. Сообщество Java чемпионов разъяснило вводимые новшества, детальный документ доступен в сети.
Даже с учетом этих новостей остаются вопросы: какие билды JDK сейчас доступны? Будут ли они бесплатными или коммерческими? Прежде чем ответить на этот вопрос, важно понять, какие требования предъявляются к JDK как продукту. Фактически, есть только один основной исходный код JDK. Он находится здесь. Кто угодно может использовать исходный код для построения собственной сборки и размещения ее где-то в сети. Однако есть отдельная процедура сертификации, которая должна быть пройдена, чтобы сборка JDK считалась валидной. Сертификация осуществляется Java Community Process (JCP), который предоставляет Technology Compatibility Kit (TCK). Если какая-либо организация создает новую сборку OpenJDK, которая отвечает TCK, она считается «совместимой с Java SE».
Имейте в виду, что сборка не может называться «Java SE», если компания, осуществившая сборку, не приобрела коммерческую лицензию от Oracle. Например, сборки AdoptOpenJDK, которые проходят TCK, не являются «Java SE», но являются «Java SE compliant». Также нужно учитывать, что сертификация сейчас основывается “на честном слове” — результаты не отсылаются в JCP/Oracle для верификации и являются закрытой информацией. Короче говоря, каждый вендор, взявший исходники OpenJDK и собравший версию, порождает еще одну отдельную сборку JDK.

Итак, без лишних слов, рекомендуем ознакомиться со следующими готовыми к использованию JDK:
Oracle JDK
Это главный поставщик Java 11 (релиз уже состоялся). Это коммерческая версия с платной поддержкой. Ее можно бесплатно скачивать и использовать только непосредственно для разработки. Использовать ее в продакшене, не заплатив Oracle, нельзя (так что для многих не интересующихся вопросами лицензирования это ловушка). Oracle планирует предоставлять платную поддержку до 2026 года и далее. В отличие от того, как было раньше, сборка Oracle JDK ничем не “лучше” OpenJDK (по стольку по скольку оба находятся на одном и том же уровне security patch level).
OpenJDK Build от Oracle
Существует бесплатные не-брендовые версии OpenJDK, распространяемые по лицензии GPL с Classpath Extension (подходит для коммерческого применения). Эти версии сборки доступны только в течение 6 месяцев после релиза. Для Java 11 ожидается выход версии Java 11.0.0 и два security -патча, 11.0.1 и 11.0.2. Чтобы продолжать использование версии OpenJDK и его патчей от Oracle, необходимо перейти на Java 12 не позднее, чем через месяц после запуска. Обратите внимание, что порядок обеспечения security-патчей отличается от порядка предоставления поддержки, которая включает в себя оплату обработки отчетов об ошибках.
AdoptOpenJDK
Это тоже бесплатные и не-брендовые сборки OpenJDK, распространяемые по лицензии GPL с Classpath Extension, только в отличие от билдов OpenJDK от Oracle эти версии сборки будут действовать в течение более длительного времени для основных версий, таких как Java 11. Версии Java 11 будут выпускаться в течение 4 лет через год после следующего основного релиза. AdoptOpenJDK ориентируется на сообщество. Пока другие команды создают и публикуют исправления безопасности для исходного репозитория OpenJDK, они будут выпускать билды. И IBM, и Red Hat обозначили, что намерены выпускать такие патчи.
AdoptOpenJDK OpenJ9
Вдобавок к стандартным сборкам OpenJDK AdoptOpenJDK будет также предоставлять версии с OpenJ9 вместо HotSpot. OpenJ9 изначально была JVM от IBM, но сейчас OpenJ9 имеет открытый исходный код. И, кстати говоря, эта опция наиболее достойная изучения.
Red Hat OpenJDK
Red Hat предоставляет версии сборки OpenJDK на Red Hat Enterprise Linux (RHEL), являющемся коммерческим продуктом с платной поддержкой. Red Hat очень неплохо справляются с исправлениями безопасности в OpenJDK. В прошлом Red Hat отвечали за security-апдейты Java 6 и 7. Сборка от Red Hat более интегрирована с операционной системой, так что ее нельзя назвать типичным билдом OpenJDK (отсутствует JDK конечного пользователя).
Azul Zulu
Zulu — брендированная версия OpenJDK с платной коммерческой поддержкой. К тому же, хотя Azul предоставляет некоторые элементы Zulu бесплатно в рамках «Zulu Community», они не несут никаких особых обязательств по доступности этих сборок. У Azul довольно масштабный план по поддержке Zulu, включающий поддержку Java 9, 13 и 15, в отличие от других поставщиков.
Amazon Corretto
Это новейшая из всех описанных опций. Corretto — бесплатная версия сборки OpenJDK с долгосрочной поддержкой, проходящая TCK. Она распространяется по стандартным условиям лицензирования всех версий OpenJDK: GPL + CE. Amazon создаст собственные патчи и запустят Corretto на AWS, так что он будет использоваться довольно активно (и уже добавлен в некоторые продукты). Поддержка Java 8 планируется по меньшей мере до июня 2023.
В процессе преобразования исходного OpenJDK в различные версии сборки производитель может добавлять различные утилиты или брендировать продукт, если это не препятствует сертификации (TCK). Например, нельзя добавить новый public-метод в API или новые языковые ресурсы.
Есть и другие реализации JDK, такие как IBM и SAPMachine. Однако эти версии сборки не так часто используются, поэтому они не упомянуты в этой статье. Более подробную информацию можно найти здесь и здесь.
Заключение
Лично я особой проблемы в наличие нескольких версий JDK не вижу, так как всем им нужно проходить сертификацию (TCK). Чем действительно стоит обеспокоиться — это использование одной из проприетарных JDK и бесплатной версии сборки от Oracle, во избежание головной боли в будущем. Если вы используете только базовые функции (например, ваш бизнес не особо зависит от секьюрити-апдейтов), вам больше подойдут сборки OpenJDK от Oracle (НЕ OracleJDK), т.к. они постоянно обновляются (в течение 6 месяцев после релиза), и вы можете использовать JDK в продакшене без особых проблем. Если в вашем бизнесе задействованы облачные сервисы (или с AWS), хорошим выбором будет AWS Corretto, который уже пригоден к использованию на Amazon Linux и Docker.
OpenJ9 виртуальная машина Java разрабатываемая Eclipse Foundation Была создана компанией IBM лежит в основе многочисленн
OpenJ9 — виртуальная машина Java, разрабатываемая Eclipse Foundation. Была создана компанией IBM. OpenJ9 лежит в основе многочисленных предложений IBM Java, в том числе WebSphere Micro Edition, а также в качестве основы для всех IBM JDK, начиная с версии 5. IBM предоставила OpenJ9 VM в распоряжение проекта Apache Harmony для запуска их библиотеки классов.
OpenJ9 была разработана с расчётом на переносимость на различные платформы, а также масштабируемость от мобильных телефонов до мэйнфреймов zSeries.
Примечания править
- Releases · eclipse-openj9/openj9 · GitHub(неопр.) . Дата обращения: 3 февраля 2022.3 февраля 2022 года.
Ссылки править
- http://wiki.eclipse.org/index.php/J9 от 20 мая 2011 на Wayback Machine
- http://abstract.cs.washington.edu/wiki/index.php/UbiComp:Hacking:Java:J9 от 17 июля 2010 на Wayback Machine
- http://www.ibm.com/developerworks/java/jdk/linux/download.html от 5 сентября 2017 на Wayback Machine
Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её.
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры
Дата публикации: Декабрь 25, 2023, 18:54 pm
Самые читаемые
Анггун
Ангара (футбольный клуб, Иркутск)
Ангальт
Анатольевка (Херсонская область)
Анатолий Передреев
Анатолий Крутиков
Анатолий Кириллович Кинах
Анастасия Загоруйко
Анастасия Дмитриевна
Анальгин
© Copyright 2021, Все права защищены.
OpenJ9 virtualnaya mashina Java razrabatyvaemaya Eclipse Foundation Byla sozdana kompaniej IBM OpenJ9 lezhit v osnove mnogochislennyh predlozhenij IBM Java v tom chisle WebSphere Micro Edition a takzhe v kachestve osnovy dlya vseh IBM JDK nachinaya s versii 5 IBM predostavila OpenJ9 VM v rasporyazhenie proekta Apache Harmony dlya zapuska ih biblioteki klassov OpenJ9Tip Virtualnaya mashina JavaRazrabotchiki Eclipse Foundation IBM do 2017 goda Napisana na SiOperacionnye sistemy Linux macOS i WindowsPoslednyaya versiya 0 30 0 28 yanvarya 2022 1 Repozitorij github com eclipse openj9Licenziya Apache 2 LicenseEclipse Public License 2 0do 2017 IBM EULASajt eclipse org openj angl OpenJ9 byla razrabotana s raschyotom na perenosimost na razlichnye platformy a takzhe masshtabiruemost ot mobilnyh telefonov do mejnfrejmov zSeries Primechaniya pravit Releases eclipse openj9 openj9 GitHub neopr Data obrasheniya 3 fevralya 2022 Arhivirovano 3 fevralya 2022 goda Ssylki pravithttp wiki eclipse org index php J9 Arhivnaya kopiya ot 20 maya 2011 na Wayback Machine http abstract cs washington edu wiki index php UbiComp Hacking Java J9 Arhivnaya kopiya ot 17 iyulya 2010 na Wayback Machine http www ibm com developerworks java jdk linux download html Arhivnaya kopiya ot 5 sentyabrya 2017 na Wayback Machine Eto zagotovka stati o programmnom obespechenii Pomogite Vikipedii dopolniv eyo Istochnik https ru wikipedia org w index php title OpenJ9 amp oldid 122334805
Поддержка JVM
Версии JVM 6, 7 и 8 получают бессрочную поддержку со стороны Oracle. Поддержка Ключ-Астром для этих версий в настоящее время также является открытой.
Версии 9 и 10 не являются версиями LTS, и их срок действия истечет в 2018 году. Ключ-Астром будет поддерживать их до конца 2019 года. Версия 11 является LTS, и ее поддержка в настоящее время не ограничена.
| Версия Java | Выпущено вендором | Конец поддержки вендором | Первая поддерживаемая версия ЕдиногоАгена | Последняя поддерживаемая версия ЕдиногоАгента | Поддержка Ключ-Астром до | Уровень поддержки Ключ-Астром |
|---|---|---|---|---|---|---|
| 19 | 2022-09-20 | — | 1.251 | — | — | Поддерживается |
| 18 | 2022-03-15 | — | 1.241 | — | — | Поддерживается |
| 17 LTS | 2021-09-15 | — | 1.225 | — | — | Поддерживается |
| 11 LTS | 2018-09-30 | 2023-09-30 | 1.155 | — | — | Поддерживается |
| 8 LTS | 2014-03-31 | 2025-03-31 | — | — | — | Поддерживается |
| 7 | 2011-07-31 | 2022-07-31 | — | — | — | Поддерживается |
| 6 | 2006-09-30 | 2018-12-31 | — | — | — | Поддерживается |
Узнайте об известных проблемах и решениях для Oracle Java Hotspot.
OpenJDK
OpenJDK имеет открытый исходный код, но официально поддерживается RedHat. См. Жизненный цикл поддержки.
В настоящее время Ключ-Астром предоставляет открытую поддержку для версий 6, 7 и 8.
Версии 9 и 10 не являются версиями LTS. Ключ-Астром будет поддерживать их до конца 2019 года. Версия 11 является LTS, и ее поддержка в настоящее время не ограничена.
| Версия Java | Выпущено вендором | Конец поддержки вендором | Первая поддерживаемая версия ЕдиногоАгена | Последняя поддерживаемая версия ЕдиногоАгента | Поддержка Ключ-Астром до | Уровень поддержки Ключ-Астром |
|---|---|---|---|---|---|---|
| 19 | 2022-09-20 | — | 1.251 | — | — | Поддерживается |
| 18 | 2022-03-15 | — | 1.241 | — | — | Поддерживается |
| 17 LTS | 2021-09-15 | — | 1.225 | — | — | Поддерживается |
| 11 LTS | 2018-09-30 | 2024-10-30 | 1.155 | — | — | Поддерживается |
| 8 LTS | 2014-03-31 | 2023-06-30 | — | — | — | Поддерживается |
| 7 | 2011-07-31 | 2020-06-30 | — | — | — | Поддерживается |
| 6 | 2006-12-31 | 2016-12-31 | — | — | — | Поддерживается |
Узнайте об известных проблемах и решениях OpenJDK JVM.
SAP JVM
SAP JVM — это JVM, созданная и поддерживаемая SAP, основанная на OpenJDK. Смотрите подробности и официальные версии
SAP JVM 6 была прекращена в конце 2017 года и больше не доступна. В настоящее время Ключ-Астром предоставляет открытую поддержку версий 7 и 8.
| Версия Java | Выпущено вендором | Конец поддержки вендором | Первая поддерживаемая версия ЕдиногоАгена | Последняя поддерживаемая версия ЕдиногоАгента | Поддержка Ключ-Астром до | Уровень поддержки Ключ-Астром |
|---|---|---|---|---|---|---|
| 19 | 2022-09-20 | — | 1.251 | — | — | Поддерживается |
| 18 | 2022-03-15 | — | 1.241 | — | — | Поддерживается |
| 17 LTS | — | — | 1.225 | — | — | Поддерживается |
| 11 LTS | — | — | 1.199 | — | — | Поддерживается |
| 8 LTS | — | — | — | — | — | Поддерживается |
| 7 | — | — | — | — | — | Поддерживается |
IBM JVM
Для IBM JVM предусмотрен собственный график поддержки, но фактическая поддержка основана на поддержке других продуктов IBM. Для Ключ-Астром наиболее важным продуктом является WebSphere Application Server (см. График поддержки).
WebSphere Application Server включен в политику расширенного жизненного цикла. Это означает, что, хотя по состоянию на апрель 2018 года WebSphere 8 является EOS, IBM продолжит поддерживать его до 2021 года.
Ключ-Астром будет поддерживать WebSphere и базовые версии JVM, пока они поддерживаются IBM. См. Подробную информацию в нашей матрице поддерживаемых технологий.
Это означает, что на данный момент IBM JVM 6,7 и 8 имеют неограниченную поддержку.
| Версия Java | Выпущено вендором | Конец поддержки вендором | Первая поддерживаемая версия ЕдиногоАгена | Последняя поддерживаемая версия ЕдиногоАгента | Поддержка Ключ-Астром до | Уровень поддержки Ключ-Астром |
|---|---|---|---|---|---|---|
| 8 LTS | 2015/02/28 | 2022/04/30 | Поддерживается | |||
| 7 | 2011/09/30 | 2019/09/30 | Поддерживается | |||
| 6 | 2007/11/30 | 2017/09/30 | Поддерживается |
Для создания дампов памяти требуется IBM JVM 7 или выше.
Узнайте больше об известных проблемах и решениях IBM JVM.
OpenJ9
Eclipse OpenJ9 JVM — это JVM, встроенная в OpenJDK JDK. Каждый выпуск OpenJ9 поддерживает несколько версий JDK. См. Политику выпуска и поддержки, а также поддержку AdoptOpenJDK.
| Версия Java | Выпущено вендором | Конец поддержки вендором | Первая поддерживаемая версия ЕдиногоАгена | Последняя поддерживаемая версия ЕдиногоАгента | Поддержка Ключ-Астром до | Уровень поддержки Ключ-Астром |
|---|---|---|---|---|---|---|
| 0.11 | 2018/09/30 | — | 1.165 | Поддерживается 1 | ||
| 0.10 | 2018/09/30 | — | 1.165 | Поддерживается 2 | ||
| 0.9 | 2018/08/31 | — | 1.145 | Поддерживается 3 | ||
| 0.8 | 2018/03/31 | — | 1.145 | Поддерживается 4 |
Amazon Corretto
JVM Amazon Corretto основана на OpenJDK. Amazon имеет собственную поддержку LTS для этой JVM. См. Подробности в FAQ по Amazon.
| Версия Java | Выпущено вендором | Конец поддержки вендором | Первая поддерживаемая версия ЕдиногоАгена | Последняя поддерживаемая версия ЕдиногоАгента | Поддержка Ключ-Астром до | Уровень поддержки Ключ-Астром |
|---|---|---|---|---|---|---|
| 19 | 2022-09-20 | — | 1.251 | — | — | Поддерживается |
| 18 | 2022-03-15 | — | 1.241 | — | — | Поддерживается |
| 17 LTS | 2021-09-14 | — | 1.225 | — | — | Поддерживается |
| 11 LTS | 2019-02-12 | 2024-08-31 | 1.165 | — | — | Поддерживается |
| 8 LTS | 2018-11-14 | 2023-06-30 | 1.165 | — | — | Поддерживается |
Azul
Ключ-Астром также поддерживает две проприетарные JVM от Azul Zulu и Zing. Подробности можно найти в нашей матрице поддерживаемых технологий.
У Azul есть собственный график поддержки
Azul Zing
| Версия Java | Выпущено вендором | Конец поддержки вендором | Первая поддерживаемая версия ЕдиногоАгена | Последняя поддерживаемая версия ЕдиногоАгента | Поддержка Ключ-Астром до | Уровень поддержки Ключ-Астром |
|---|---|---|---|---|---|---|
| 11 LTS | 2018-09-30 | 2026-09-30 | — | — | — | Ограничена 1 |
| 8 LTS | 2015-03-31 | 2025-03-31 | — | — | — | Ограничена 1 |
| 7 | 2011-07-31 | 2021-12-31 | — | — | — | Ограничена 1 |
| 6 | 2006-12-31 | 2017-04-30 | — | — | — | Ограничена 1 |
1 Ограниченная поддержка: Ключ-Астром может предоставлять поддержку только для проблем, которые могут быть воспроизведены на других JVM.
Azul Zulu
| Версия Java | Выпущено вендором | Конец поддержки вендором | Первая поддерживаемая версия ЕдиногоАгена | Последняя поддерживаемая версия ЕдиногоАгента | Поддержка Ключ-Астром до | Уровень поддержки Ключ-Астром |
|---|---|---|---|---|---|---|
| 19 | 2022-09-20 | — | 1.251 | — | — | Поддерживается |
| 18 | 2022-03-15 | — | 1.241 | — | — | Поддерживается |
| 17 LTS | 2021-09-13 | 2030-09-30 | 1.225 | — | — | Поддерживается |
| 11 LTS | 2018-09-30 | 2027-09-30 | 1.173 | — | — | Поддерживается |
| 8 LTS | 2015-03-31 | 2026-03-31 | — | — | — | Поддерживается |
| 7 | 2011-07-31 | 2023-07-31 | — | — | — | Поддерживается |
Поддержка и отказ
Для JVM предусмотрены разные сроки поддержки в зависимости от поставщиков. Ключ-Астром обязуется поддерживать каждую JVM и каждую версию как минимум столько, сколько делает их поставщик, а в большинстве случаев как минимум на 1 год дольше.
См. Нашу матрицу поддерживаемых технологий для получения дополнительных сведений о поддерживаемых JVM.
Unleash the power of Java
Optimized to run Java™ applications cost-effectively in the cloud, Eclipse OpenJ9™ is a fast and efficient JVM that delivers power and performance when you need it most.
Optimized for the Cloud, for microservices and monoliths too!
Faster Ramp-up, when deployed to cloud
Our Story
Eclipse OpenJ9 is a high performance, scalable, Java virtual machine (JVM) implementation that represents hundreds of person-years of effort. Contributed to the Eclipse project by IBM, the OpenJ9 JVM underpins the IBM SDK, Java Technology Edition product that is a core component of many IBM Enterprise software products. Continued development of OpenJ9 at the Eclipse foundation ensures wider collaboration, fresh innovation, and the opportunity to influence the development of OpenJ9 for the next generation of Java applications.
Our supporters
The success of the OpenJ9 project is underpinned by the generosity of our supporters, to whom we would like to extend our thanks. This support comes in different forms; monetary, people, system, and data center resources. People resources help us to staff the planning, development, delivery, and support of OpenJ9 releases as well as pioneering new and innovative technologies. Dedicated systems and hosting services allow us to run automated build and test operations, which help ensure that quality and reliability is central to all our deliverables.

Join the conversation
Join us on Slack where you can ask questions and chat directly with our developers. Whether you simply have a question about using OpenJ9, an idea for improvement, or a problem you want to discuss, we’d love to hear from you.
Like all great open source projects, we have a vibrant and busy GitHub repository where you can create issues to explore ideas, request new features, or report any difficulties you are having.
Participate in the Eclipse OpenJ9 project
Become a contributor
We welcome contributions to the project in all shapes and forms. If you are interested in JVM development, we’d love to hear your ideas and help you collaborate with us on the code base. There are other ways you can contribute too, such as working on our website and docs. Be a part of the project and share in our success!
Join community calls
Our regular calls are a great place to find out what is going on in the project. As well as discussing our release plans and development status, we often feature lightning talks by members of the community. For example, technical deep dives or overviews about new features. To see agendas and recordings, look in the Slack #planning channel.
Eclipse OpenJ9 version 0.41.0 released
We’re pleased to announce the availability of Eclipse OpenJ9 v0.41.0.
This release supports OpenJDK version 8, 11, and 17. For more information about supported platforms and OpenJDK versions, see Supported environments.
Other updates in this release include the following:
- The -XX:+CompactStrings option is now enabled by default on Java 11 and later.
- The JITServer client can now use the JITServer AOT cache even if both the -Xshareclasses:readonly option and the JITServer AOT cache feature were enabled at the same time. With the change in behavior of the -Xshareclasses:readonly option, the shared class cache startup creates a temporary new (writable) top layer that the JITServer AOT cache can use to store data that it needs to function.
- A new -XX:[+|-]EnableDynamicAgentLoading option is added to enable or disable the dynamic loading of agents into a running VM.
- A new -XX:[+|-]UseZlibNX option is added to control the loading of the zlibnx library in the LIBPATH environment variable on AIX® systems.
- Support is added for the com.sun.management.ThreadMXBean.getThreadAllocatedBytes() API on all platforms except z/OS®. In the coming future z/OS release, the support for this API will be added on z/OS platforms as well.
To read more about these and other changes, see the OpenJ9 user documentation.
Performance highlights include:
- Performance of algorithms with the use of OpenSSL version 3 and later is now enhanced. Improved algorithms include SHA256, AES, HmacSHA256, and ChaCha20.
To obtain these improved algorithms and further enhance the performance of these algorithms on Linux® and AIX, use OpenSSL 3.0.12 or a later 3.0.x version, or 3.1.4 or a later 3.1.x version. - For Java 17, the performance to call virtual or interface methods through MethodHandles is improved.
- The JIT inlining optimization is enhanced to improve performance when it selects methods with constant arguments.