В связи с недавним обновлением политики Oracle Java SE Support Roadmap (в частности, окончание бесплатных релизов Oracle после марта 2019 года), я искал альтернативы Oracle Java. Я обнаружил, что OpenJDK является альтернативой с открытым исходным кодом. И я нашел AdoptOpenJDK , теперь известный как Adoptium, который представляет собой готовый двоичный файл . Это загадки.
В чем разница между OpenJDK и Adoptium / AdoptOpenJDK?
Ответы:
Коротко:
Объяснение:
Prebuilt OpenJDK (или дистрибутив) - двоичные файлы, созданные из http://hg.openjdk.java.net/ , предоставляемые в виде архива или установщика, предлагаемые для различных платформ, с возможным контрактом на поддержку.
OpenJDK, репозиторий исходного кода (также называемый проектом OpenJDK ) - это репозиторий с открытым исходным кодом на основе Mercurial , размещенный по адресу http://hg.openjdk.java.net . Исходный код Java. Подавляющее большинство функций Java (от ВМ и основных библиотек до компилятора) основаны исключительно на этом исходном репозитории. У Oracle есть альтернативная ветвь этого.
OpenJDK, дистрибутив (см. Список провайдеров ниже) - бесплатный, как в пиве, так и бесплатный, как в речи , но вы не можете позвонить в Oracle, если у вас есть проблемы с ним. Контракта на поддержку нет. Кроме того, Oracle будет выпускать обновления для любой версии OpenJDK (дистрибутива), только если этот выпуск является самым последним выпуском Java, включая выпуски LTS (долгосрочная поддержка). В тот день, когда Oracle выпустит OpenJDK (дистрибутив) версии 12.0, даже если существует проблема безопасности с OpenJDK (дистрибутив) версии 11.0, Oracle не выпустит обновление для 11.0. Поддерживается исключительно Oracle.
Некоторые проекты OpenJDK, такие как OpenJDK 8 и OpenJDK 11 , поддерживаются сообществом OpenJDK и предоставляют версии для некоторых версий OpenJDK для некоторых платформ. Члены сообщества взяли на себя ответственность за выпуск исправлений для уязвимостей в этих версиях OpenJDK.
AdoptOpenJDK, дистрибутив очень похож на дистрибутив Oracle OpenJDK (в том смысле, что он бесплатный, и это сборка, созданная путем компиляции исходных кодов из репозитория OpenJDK). AdoptOpenJDK как сущность не будет бэкпортировать патчи, то есть не будет AdoptOpenJDK 'fork / version', который существенно отличается от апстрима (за исключением некоторых патчей сценария сборки для таких вещей, как поддержка Win32). Это означает, что если члены сообщества (Oracle или другие, но не AdoptOpenJDK как сущность) исправляют ошибки безопасности, связанные с бэкпортом, для обновлений версий OpenJDK LTS, то AdoptOpenJDK предоставит сборки для них. Поддерживается сообществом OpenJDK.
OracleJDK - это еще один дистрибутив. Начиная с JDK12 не будет бесплатной версии OracleJDK. Предложение Oracle по распространению JDK предназначено для коммерческой поддержки. Вы платите за это, но затем вы получаете поддержку Oracle. В отличие от предложения Oracle OpenJDK, OracleJDK поставляется с более длинной поддержкой версий LTS. Как разработчик вы можете получить бесплатную лицензию для личного использования / разработки только для этого конкретного JDK, но это в основном красная сельдь, поскольку «просто двоичный файл» в основном совпадает с двоичным файлом OpenJDK. Я предполагаю, что это означает, что вы можете загружать исправленные для безопасности версии LTS JDK с веб-сайтов Oracle, если вы пообещаете не использовать их в коммерческих целях.
Примечание . Лучше всего называть сборки OpenJDK от Oracle «сборками Oracle OpenJDK».
Дональд Смит, менеджер по продуктам Java в Oracle, пишет :
Поставщики OpenJDK и сравнение
Бесплатные сборки из исходного кода - исходный код дистрибутива общедоступен, и можно собрать собственную сборку
Бесплатные бинарные дистрибутивы - бинарные дистрибутивы общедоступны для скачивания и использования
Расширенные обновления - LTS (долгосрочная поддержка) - публичные обновления после 6-месячного жизненного цикла выпуска
Коммерческая поддержка - некоторые провайдеры предлагают расширенные обновления и поддержку для платящих клиентов, например Oracle JDK ( подробности поддержки )
Permissive License - лицензия на распространение не является защитной, например, Apache 2.0
Какой дистрибутив Java я должен использовать?
В дни Sun / Oracle, как правило, Sun / Oracle производила проприетарные нисходящие дистрибутивы JDK на основе источников OpenJDK. Недавно Oracle решила делать собственные проприетарные сборки только с коммерческой поддержкой. Они любезно публикуют сборки OpenJDK также на своем сайте https://jdk.java.net/ .
Начиная с JDK 11 происходит переход от мышления одного поставщика (Oracle) к мышлению, при котором вы выбираете провайдера, который дает вам дистрибутив для продукта в соответствии с вашими условиями: платформы, для которых они создаются, частота и скорость выпусков как устроена поддержка и т. д. Если вы не доверяете ни одному из существующих поставщиков, вы можете даже создать OpenJDK самостоятельно.
Каждая сборка OpenJDK обычно делается из одного исходного исходного репозитория («проект» OpenJDK). Однако каждая сборка является совершенно уникальной - бесплатной или коммерческой, фирменной или не брендированной, чистой или в комплекте (например, BellSoft Liberica JDK предлагает пакетную версию JavaFX, которая была удалена из сборок Oracle, начиная с JDK 11).
Если ни одна среда (например, Linux) и / или лицензионное требование не определяют конкретный дистрибутив и если вам нужна самая стандартная сборка JDK, то, вероятно, лучшим вариантом будет использование OpenJDK от Oracle или AdoptOpenJDK.
Дополнительная информация
Время заглянуть за пределы Oracle JDK Стивен Коулборн
Java все еще бесплатна сообществом Java Champions (опубликовано 17 сентября 2018 г.)
Java всё ещё бесплатна 2.0.0 от сообщества Java Champions (опубликовано 3 марта 2019 г.)
Алексей Шипилев о интервью JDK с Опсианом (опубликовано 27 июня 2019 г.)
источник
Обновление: AdoptOpenJDK изменил свое название на Adoptium , как часть его перехода к Eclipse Foundation .
OpenJDK ➙
сборки исходного кода Adoptium / AdoptOpenJDK ➙
Первый предоставляет исходный код , другой предоставляет сборки этого исходного кода.
Несколько поставщиков Java & OpenJDK
Adoptium из Eclipse Foundation , ранее известный как AdoptOpenJDK , является лишь одним из нескольких поставщиков, распространяющих реализации платформы Java. Это включает:
Посмотрите мою блок-схему, чтобы помочь вам выбрать поставщика для реализации платформы Java. Нажмите / нажмите, чтобы увеличить.
Другой ресурс: эта матрица сравнения от Azul Systems полезна, и, на мой взгляд, она верна и справедлива.
Вот список соображений и мотивов, которые следует учитывать при выборе поставщика и реализации.
Некоторые поставщики предлагают вам выбор технологий JIT .
Чтобы узнать больше об этой экосистеме Java, прочитайте Java Is Still Free
источник