Важное обновление лицензии oracle java что значит
Условия лицензирования Java
Чтобы разобраться в хитросплетениях новой лицензионной политики Java, нужно сначала понять разницу между личным и коммерческим использованием. Личное использование допускает установку продуктов Oracle на ПК, принадлежащем физическому лицу и находящемся под его полным контролем. Таким образом, корпоративный компьютер не подходит под это условие, так как он принадлежит компании. Кроме того, разрешается запускать приложения для личных нужд: например, играть в игры или вести собственный бюджет. При этом запрещается распространять или передавать ПО Oracle, предоставленное для личного пользования, третьим лицам, как отдельно, так и в составе собственных продуктов.
С 2019 года бесплатные обновления Java 8 и Oracle JDK 11 предоставляются некоммерческим пользователям для личного использования, разработки, прототипирования, тестирования, и некоторых других видов деятельности, указанных в лицензии «Oracle Technology Network» (OTN) для Java SE 2 . Однако Oracle OpenJDK 11 распространяется под лицензией «General Public License, version 2, with the Classpath Exception» (GPLv2+CPE), как и все остальные дистрибутивы OpenJDK. Следует отметить, что Oracle предоставляет две сборки: Oracle JDK и Oracle OpenJDK. Последняя получает обновления в течение шести месяцев после выхода следующей версии. По истечению этого срока необходимо приобрести лицензию, чтобы и дальше получать патчи и поддержку поставщика.
В 2021 году в ответ на отзывы разработчиков, которые хотели получить «надежный Oracle JDK с четкими условиями бесплатного использования» 3 , Oracle изменила условия лицензирования Java 17 и представила новую лицензию NFTC. Теперь разные версии и сборки Oracle JDK распространяются под разными лицензиями, краткий обзор которых представлен в таблице ниже.
Версия JDK (LTS) | Сборки и даты | Лицензия |
---|---|---|
Oracle JDK 7 | 7u80 до апреля 2015 г. | Oracle BCL для Java SE |
С июля 2015 г. | My Oracle Support для клиентов Oracle | |
Oracle JDK 8 | 8u202 до января 2019 г. | Oracle BCL для Java SE |
С апреля 2019 г. (актуальная сборка 8u321) | My Oracle Support для клиентов Oracle и Oracle OTN для Java SE для личного использования, разработки и других пользователей | |
Oracle JDK 11 | Oracle OpenJDK до января 2019 г. | GPLv2+CPE для всех пользователей |
Oracle JDK (актуальная сборка 11.0.14) | My Oracle Support для клиентов Oracle и Oracle OTN для Java SE для личного использования, разработки и других пользователей | |
Oracle JDK 17+ | Oracle OpenJDK до января 2022 г. | GPLv2+CPE для всех пользователей |
Oracle JDK до сентября 2024 г. (актуальная сборка 17.0.2) | Oracle NFTC для всех пользователей |
… но с некоторыми косметическими и упаковочными различиям
Остаётся небольшое количество различий, некоторые умышленные и косметические, а некоторые просто требуют больше времени на обсуждение с контрибьюторами OpenJDK.
- Oracle JDK 11 выдаёт предупреждение при использовании опции -XX:+UnlockCommercialFeatures , тогда как в OpenJDK эта опция приведёт к ошибке. Эта опция никогда не была частью OpenJDK, поэтому нет никакого смысла добавлять её, поскольку в OpenJDK нет коммерческих функций. Эта разница остаётся для того, чтобы пользователям Oralce JDK 10 или более ранних версий было проще перейти Oracle JDK 11 или более поздние версии.
- Oracle JDK 11 может быть сконфигурирована для предоставления лог-данных в инструмент Advanced Management Console, являющимся отдельным коммерческим продуктом Oracle. Мы будем работать с другими контрибьюторами OpenJDK над вопросом необходимости предоставления таких данных и пользы от них в OpenJDK в будущих версиях. Эта разница остаётся прежде всего для сохранения накопленного опыта клиентами Oracle.
- Команда javac --release ведёт себя по-разному для Java 9 и Java 10, поскольку в этих версиях Oracle JDK содержит некоторые дополнительные компоненты, которые не были частью соответствующих версий OpenJDK:
- javafx.base
- javafx.controls
- javafx.fxml
- javafx.graphics
- javafx.media
- javafx.web
- java.jnlp
- jdk.jfr
- jdk.management.cmm
- jdk.management.jfr
- jdk.management.resource
- jdk.packager.services
- jdk.snmp
Содержание
Как нам их назвать?
В идеале, мы бы могли ссылаться на все сборки Oracle JDK как на «Oracle JDK», либо под лицензией GPL или под коммерческой лицензией в зависимости от вашей ситуации. Однако по историческим причинам, пока присутствуют небольшие различия, мы будет ссылаться на них по отдельности: OpenJDK и Oracle JDK.В 2019 г. произошли кардинальные изменения в политике лицензирования Oracle JDK 8. Поскольку обновления Java 8, являющейся наиболее распространенной версией среди разработчиков, стали платными, компании оказались перед выбором: оформить коммерческую поддержку на Java или перейти на дистрибутив другого вендора.
В 2021 году Oracle объявила о сокращении цикла LTS-релизов (раз в два года вместо трех) и снова изменила условия лицензирования. Начиная с 17-й версии, Oracle JDK распространяется под лицензией «Oracle No-Fee Terms and Conditions» (NFTC). Значит ли это, что Java для коммерческого использования снова бесплатна? Ответ не так прост. В этой статье мы подробно разберем условия лицензирования и узнаем, как новая политика влияет на корпоративную разработку. Мы не будем вдаваться в юридические тонкости, но вместо этого постараемся максимально четко обрисовать текущую ситуацию на основании данных, представленных Oracle 1 .
Итак, давайте посмотрим, что предлагает Oracle! Вы также можете связаться с представителями BellSoft, и они с радостью помогут вам разобраться в этой теме.
Пользователи предприятий с госучастием, министерств и ведомств получили отечественный программный продукт Liberica JDK для разработки и запуска своих Java-приложений.
Санкт-Петербург, 3 сентября 2019 г.
Программный продукт Liberica JDK (Java Development Kit) включен в реестр российского ПО под номером 5493 согласно приказу Минсвязи. Теперь в списке программ, созданных в России, есть ключевая технология разработки и запуска приложений Java, которая рекомендована к использованию в органах государственной власти. Это единственный продукт в реестре сразу по нескольким критериям – среда разработки и исполнения Java и связущее серверное ПО. Добавление Liberica JDK в реестр способствует расширению использования российского ПО и открывает новый этап развития и поддержки ИТ для предприятий с госучастием, министерств и ведомств.
«Включение среды исполнения Java в реестр российского ПО - это значимый шаг для развития ИТ-рынка в России. Java заслуженно стала самой популярной технологией разработки бизнес-приложений в мире, и Россия не исключение. А в корпоративных и государственных системах предъявляются высокие требования к качеству и поддержке ПО. Теперь ИТ-руководители, офицеры безопасности и архитекторы смогут воспользоваться поддержкой российского производителя, аккумулировашего лучшую экспертизу и опыт разработки Java в российском программном продукте Liberica JDK.» - отметил Александр Белокрылов, Генеральный директор BellSoft.
Инженерный костяк разработчика Liberica JDK состоит из российских инженеров, которые участвовали в создании Java на протяжении 15 лет в Sun и Oracle и продолжают сегодня вносить существенный вклад в OpenJDK. Это позволяет компании предоставлять консультационные сервисы, связанные с разработкой сложных систем на Java технологиях: аудит архитектуры программных систем, оптимизация производительности, миграция программных систем на современные версии Java, переработка архитектурного дизайна для улучшения перфоманса системы в целом. Глубокие знания механизмов работы виртуальной машины Java, понимание дизайна системных библиотек и большой опыт работы по оптимизации приложений использующих современные и легаси фреймворки, позволяют клиентам компании BellSoft в России и за рубежом получать результаты высочайшего качества и в оптимальные сроки.
Например, Павел Дерендяев, руководитель центра компетенций Java Департамента цифровых решений Альфа-Банка отмечает: “Компактные контейнеры Liberica JDK активно используются в микросервисных приложениях Альфа-Банка, а знания и опыт инженеров BellSoft позволяют нам быть уверенными в надежности и безопасности Liberica JDK.”
Компании в финансовом секторе, ритейле, ИТ с уверенностью доверяют поддержку своих систем на Java-технологиях экспертам BellSoft. Внесение Liberica JDK в единый реестр российского ПО позволит расширить положительный пользовательский опыт на компании с государственным участием, министерства и ведомства и с полным соблюдением требований цифрового суверенитета.
Подтверждения и дополнительная информация:
О компании BellSoft:
Компания BellSoft выпускает Liberica JDK: cреду разработки и запуска приложений Java SE и предоставляет коммерческую поддержку, которая помогает эффективно решать задачи бизнеса в серверном, облачном и IoT применениях Java технологий. Имея более чем 15 летний опыт разработки Java, инженеры компании продолжают сегодня вносить существенный вклад в OpenJDK сообщество. Liberica JDK внесена в реестр российского ПО, что позволяет рекомендовать продукт органам государственной власти.
Уже 2 дня как вступили в силу изменения лицензионной политики Oracle на распространение сборок Java SE. В среде разработчиков-слоупоков (я тоже в их числе) начали носиться кошмарные слухи.
Что произошло
В середине 2018 года Oracle объявил, что собирается изменить лицензионную политику. 16 апреля 2019 года изменение вступило в силу. Теперь все опубликованные после этой даты сборки Java SE можно использовать бесплатно только для личных нужд и с целью разработки. Для использования в коммерческих целях (в том числе для продакшена) надо оформить платную подписку у Oracle.
Что-а-а?
Oracle выстрелил себе в ногу и убивает Java? Нет, не убивает. Нет, не выстрелил. Но проблемхалявщикамвсем нам подкинул. Давайте быстро разберемся, что это означает в практическом плане, без этих ваших GPL, BCL, WTF…
Зачем они это сделали?
Для коммерческой сборки поддержка длительная. Для бесплатной – короткая. Т.е. чтобы накатить патчи на бесплатную OpenJDK через полгода надо будет проапгрейдить версию. Oracle JDK будет выпускать патчи еще 5 лет после выпуска. Поэтому она платная.
Что насчет Java 8, 9, 10, 11.
Это касается всех версий.
Это касается JRE?
Нигде отдельно не указывается лицензия на JRE. Считается, что раз JRE является подмножеством JDK, то и лицензионные ограничения такие же. Т.е. — да, это касается JRE.
Это мне надо теперь все снести на продакшене.
Нет. Изменения касаются только новых выпусков (после 16 апреля). Для Java 8 SE первым выпуском с ограничениями стала Update 211. Все что было выпущено ранее, можно использовать дальше без ограничений.
А что теперь делать?
Ставить OpenJDK. Но сам OpenJDK от Oracle не имеет официального виндового установщика (и автоматического апдейта), надо его распаковывать руками.
Если вам важен именно установщик, остается только пользоваться ранними релизами от Oracle (Update 202). А апдейты все равно придется отключить.
UPD: В комментариях подсказали, что существуют бесплатные бинарники с установщиком AdoptOpenJDK, поддерживаемые comunity.
Еще можно обратить внимание на Liberica JDK, которая поддерживается JetBrains.А от OpenJDK ничего не сломается?
Не должно (с). Отличия в функциональности минимальны и очень мало кого затрагивают. При этом Oracle планомерно уменьшает эти различия, вливая их в OpenJDK или удаляя совсем.В последнее время в Java произошло много изменений, и похоже, что коренным образом изменилось то, как язык будет развиваться дальше. Хорошо, что в языке появляются новые возможности. Но это не единственные перемены. Oracle внесла существенные изменения в модель поддержки и цикл обновления версии Java, которые выпускает эта компания. Все это привело к возникновению большой путаницы, причиной которой стали перемены, дезинформация и непонимание. В этой статье я резюмирую все, что нужно знать пользователям о нововведениях, прежде чем они начнут верить в наступление апокалиптического конца Java-экосистемы.
Однако вначале нужно прояснить некоторые моменты.
Oracle владеет Java, но Java — это не Oracle. Исходный код Java выпущен в лицензии GPLv2.0 с classpath exception. На деле это означает, что кто угодно может использовать и вносить изменения в исходный код языка бесплатно. Есть только одна вещь, которую запрещено делать всем, включая Oracle: вносить изменения в код и публиковать его с закрытой исходной лицензией. Это означает, что коммерческое использование Java, только платной версии, юридически невозможно, даже если этого потребуют маркетинговые или бизнес-интересы Oracle. Но я все-таки технический специалист. Для того, чтобы разобраться с этим моментом на 100% лучше всего загрузить текст GPLv2-лицензии и проконсультироваться с юристом.
Oracle – не единственная компания, которая выпускает сборки Java и занимается поддержкой, есть много других вендоров. Конечно, Oracle, как основной игрок, инвестирующий больше всего в развитие языка и инструментов, является самой престижной коммерческой компанией по его поддержке.Фактически, у Oracle нет эксклюзивных прав не только на исходный код Java. Процесс развития, изменения в определении Java, API – все это находится в руках Java Community Process, вступить в которое может каждый. Для частных лиц это и вовсе бесплатно. Членами этой группы являются такие компании, как Intel, IBM, Credit Suisse, Software AG, RedHat. Именно они определяют будущее Java, а не Oracle. И у них есть свое мнение, как мы могли видеть в прошлый раз, когда утверждение финальной версии JPMS происходило не совсем гладко.
После этого вступления, в котором мы определились с тем, что Oracle “владеет” Java, но не является Java, давайте посмотрим на те изменения в процедуре поддержки развития и дорожной карте Java, которые представила Oracle.
Как новая лицензионная политика скажется на бизнесе
Как новая политика лицензирования повлияет на вашу компанию? Все зависит от того, какую версию Java вы используете. Давайте ответим на этот вопрос на примере LTS-версий.
Версии до Java 17
Если ваши приложения работают на Oracle JDK 8 или 11, и вы не планируете в скором времени обновляться, можете продолжить пользоваться этими версиями и получать бесплатные (в случае личного использования) или платные обновления.
Но не забывайте, что если вы используете Java 8, но еще не оформили платную подписку для получения обновлений безопасности, ваши приложения подвергаются высокому риску атак, так как вы уже пропустили много патчей уязвимостей. Рассмотрите вариант миграции на OpenJDK. Так вы будете получать бесплатные обновления гораздо дольше. Например, BellSoft будет обновлять Java 8 до 2031 года!
Что касается пользователей Java 6 и 7, для них тоже ничего не изменится. Единственное, о чем следует помнить, это об уязвимостях ПО на Java 6 и 7. BellSoft выпускает регулярные обновления JDK 1.6 и 1.7, поэтому вам не придется беспокоиться о возможных атаках.
Изменения после версий Java 9, 10, 11
Oracle объявила, что, начиная с JDK11, Oracle JDK перестанет быть бесплатным. И поначалу это заявление пугает. То, чем мы привыкли пользоваться бесплатно, больше таковым не будет. На практике то, что “мы должны платить” почти логично. Но небольшое слово “почти” стоит там не зря. Если есть какой-то сервис, которым мы пользовались, и он перестал быть бесплатным, у нас есть две опции: платить, чтобы пользоваться дальше, или больше не пользоваться. Стоит ли и дальше использовать Oracle JDK или мы можем перейти на что-то другое? Вот в чем вопрос на самом деле.
Чтобы ответить на него, нужно понять, что из себя представляет Oracle JDK, и какие есть альтернативы. Другое существенное изменение касается циклов выхода новых версий и понятия долгосрочной поддержки (англ. — Long Term Support или LTS). Для начала мы обсудим изменения в цикле выхода новых версий, затем путаницу с Open JDK и в конце — структуру LTS.
Цикл выхода новых версий
Java появилась в 1996 году. Первые несколько версий Java выходили более или менее регулярно.
Однако, взглянув на диаграмму, мы видим, что версия Java 5.0 вышла с задержкой. Java 6 также не спешила за предыдущей версией, и самый большой перерыв был между Java 6 и Java 7. Даже после этого новые версии выпускались не очень часто. Java 8 получила много новых функций, но ценой этому были два года ожидания. Похожим образом обстояли дела с Java 9, которая хоть и претерпела еще больших изменений, но ждать себя заставила целые три года.
Проблема таких циклов выхода обновлений заключается в том, что язык, который сам по себе конкурирует на постоянно развивающемся рынке языков, не может представлять новые функции достаточно быстро. Если на развитие модульной системы уходит три года, то ничто не может ускорить процесс. Тем не менее, некоторые вещи, которые появились в Java 9 могли быть выпущены раньше. Но они попросту не могли попасть к разработчикам, так как более ранних релизов не было. Уже доступные функции должны были ждать появления самой медленно разрабатываемой в этом релизе функции. Это одна из проблем классической каскадной модели разработки.
Oracle решила двигаться в духе agile и делать версии каждые шесть месяцев. Начиная с сентября 2017 года, новые релизы Java можно ожидать в марте и сентябре. Если какая-то функция будет не готова к этим датам, ее перенесут в следующий релиз, но остальные по мере готовности будут попадать в свежайшие.
В целом, это нормально. С одной стороны, Java-сообщество и разработчики должны быть этому рады. С другой стороны, остается вопрос поддержки. Кто может поддерживать такое количество версий Java? Именно поэтому была представлена долгосрочная поддержка (LTS), о которой мы скоро поговорим. Но сначала еще надо прояснить, что же такое Oracle JDK и OpenJDK.
Заключение
Изменения лицензионной политики Java кажутся потрясающими, но на самом деле они сопровождаются определенными ограничениями, а в итоге все равно придется оформить платную подписку для получения обновлений. Продумайте свою бизнес-стратегию, решите, нужен вам Oracle JDK или OpenJDK, и в последнем случае, какой дистрибутив подойдет вам лучше всего.
И еще кое-что. Некоторые компании перешли на OpenJDK, чтобы бесплатно использовать сборки JDK. Вы не обязаны платить за ПО с открытым исходным кодом, и цель проекта OpenJDK — обеспечить разработчиков доступными, эффективными и безопасными тулами. Но оформление коммерческой поддержки — это не только усиленная безопасность рантайма в любой момент. Это еще и возможность поддержать сообщество и экосистему Java, чтобы инженеры могли и дальше посвящать свое время улучшению платформы Java.
Итоги
Что же вам делать? Использовать OpenJDK или платить за Oracle JDK? Это вопрос рентабельности и того, насколько важна для вас поддержка от Oracle. Если ваш бизнес не может себе позволить поддержку Oracle JDK, потому что вы стартап, восходящая звезда с блестящей идеей продукта, но дырой в кармане, значит вашим потребностям соответствует OpenJDK. За него не нужно платить. И, кроме того, если вы стартап, для вас не так критично, если ваши серверы не будут работать в течение нескольких часов, пока технические специалисты не решат проблему. Если вы не можете позволить себе время простоя, скорее всего, вы работаете в зрелой компании, и, следовательно, должны использовать Oracle JDK и подписаться на поддержку. Также вы можете решить совместить разные модели и установить на некоторые продуктовые серверы, которые должны быть доступны 24/7, Oracle JDK, и OpenJDK на внутренние приложения, которые не так критичны для бизнеса.
В любом случае, вы можете продолжать использовать Java и дальше.
Питер Верхас работает в швейцарском офисе EPAM. Питер разрабатывает программное обеспечение для клиентов, проводит тренинги для программистов и занимается менторингом внутри компании.
Вчера на Хабре был опубликован перевод поста «Не попадитесь в ловушку используя Oracle JDK 11» с последующим обсуждением «платности Java», но не всё так страшно, как кажется на первый взгляд — ниже перевод публикации из блога Oracle с официальной позицией по лицензированию и распространению версий JDK 11+.
Резюме
Начиная с Java 11, Oracle будет выпускать JDK под лицензией GNU General Public License v2, with the Classpath Exception (GPLv2+CPE) и под коммерческой лицензией для тех, кто использует Oracle JDK как часть продуктов или сервисов Oracle, или кто не хочет использовать открытое программное обеспечение. Эта комбинация из OS-лицензии и коммерческой заменяет старую лицензию BCL (Oracle Binary Code License), которая состоит из коммерческих и бесплатных условий использования.
Для каждой лицензии будут предоставляться отдельные сборки, но эти сборки будут идентичны функционально, кроме некоторых косметических различий и различий в способе упаковки бинарников, подробно описанных ниже.
В чем заключаются изменения политики лицензирования?
- Лицензия «Oracle No-Fee Terms and Conditions» применима только в том случае, если вы не приобрели пакет JDK 17 отдельно или в составе другого продукта в соответствии с генеральным соглашением Oracle. Это значит, что если вы уже оформили, например, подписку Java SE или приобрели другое ПО Oracle, действие NFTC не распространяется на установку Oracle Java 17.
- Согласно NFTC версия JDK 17 бесплатна для коммерческого и производственного использования с определенными ограничениями:
- Разработка, тестирование, прототипирование и демонстрация приложений разрешены. Приложения должны разрабатываться вами или вашей компанией.
- Запуск ПО для личного или внутрикорпоративного использования. Мы уже обсудили, что входит в понятие личного использования. Внутрикорпоративное использование подразумевает деплой и применение Oracle JDK внутри компании.
- Повторное распространение ПО под действием NFTC без взимания платы с договорных партнеров.
От BCL к GPL
Вам нужна лицензия Oracle?
Следует учесть еще один важный момент, а именно, нужно ли вам вообще лицензионное соглашение с Oracle. Пункты ниже помогут вам определиться с будущей бизнес-стратегией:
- Вам нужна техподдержка? Мы уже рассказывали о преимуществах техподдержки для Java-приложений, но, возможно, вы считаете, что у вас хватает ресурсов для самостоятельного устранения проблем. Если нет, вендоры OpenJDK тоже предоставляют высококачественную поддержку. Например, инженеры BellSoft с 15-летним опытом работы с Java готовы помочь вам 24/7/365.
- Вам нужны коммерческие тулы? У большинства из них есть альтернативы. Например, JDK Flight Recorder и Mission Control являются частью проекта OpenJDK. GraalVM CE почти так же хорош, как и версия EE, при этом члены сообщества постоянно работают над его улучшением. А Java AMC можно заменить на Liberica Administration Center, у которого даже больше функций.
Релизы с долгосрочной поддержкой (Long Term Support Releases)
Переход на новый цикл выпуска версий через каждые полгода поднял вопрос поддержки. Никто не может поддерживать такое количество версий с выгодой для себя. Если вы установили Java 6 для своего приложения в 2007 году, вы можете получить поддержку от Oracle через 11 лет. Выпуск новых версий каждые полгода подразумевает поддержку 22 разных версий одновременно. Это стало бы тяжелым бременем для Oracle или любого другого вендора, который бы решил поддерживать все релизы.
Стратегия Oracle заключается в том, чтобы каждые три года определять один релиз, который получит долгосрочную поддержку. Первым таким релизом стал Java 11, и он будет поддерживаться вплоть до 2026 года. В течение этого времени в сентябре 2021 года также выйдет Java 17, которая получит долгосрочную семилетнюю поддержку, в соответствии с текущими планами. Все прочие, так называемые функциональные релизы, будут поддерживаться только до выхода следующей версии.
Обратите внимание, что поддержка распространяется только на Oracle JDK и только для тех, кто оплатил JDK и поддержку. Но не думайте, что вас бросили на произвол судьбы, если планируете использовать OpenJDK. Для нас ничего не изменилось. Если вы не платили за поддержку до этого, вы ее и так не получали. Если платили, то будете продолжать оплачивать и получите эту поддержку.
Вот ссылка на статью Oracle с прогнозами конца жизненного цикла для разных версий.
Будут ли выпущены новые версии для OpenJDK? Конечно. Ранее выходили обновления открытого исходного кода Java, в котором исправлялись ошибки, хотя гарантий того, что они будут выходить, не было. Это происходило просто потому, что в этом были заинтересованы все участники. В дальнейшем все останется по-старому, Java будет получать новые версии, новые сборки.
Я вижу три основные стратегии выбора, какую версию Java лучше установить:
- Платить Oracle за Oracle JDK и подписку, и пользоваться релизами с долгосрочной поддержкой. Это то, что следует делать большим коммерческим компаниям, использующим инфраструктуру Java, чтобы соответствовать требованиям надежности.
- Перейти на OpenJDK, использовать только релизы с долгосрочной поддержкой, и устанавливать версии с исправленными ошибками, доступные для OpenJDK. Это жизнеспособное решение для компаний, которые не могут или не хотят менять стоимость инфраструктуры Java, могли обходиться без коммерческой поддержки в прошлом и полагают, что также смогут и в долгосрочной перспективе.
- Перейти на OpenJDK и устанавливать последующие релизы каждые шесть месяцев, как только они будут появляться. Это вариант для компаний, которым нужны самые последние технологические решения.
“Стоимость десктопной версии составляет $2.50 за пользователя в месяц, или ниже при наличии многоуровневых скидок за объем. Дополнительную информацию смотрите в прейскуранте цен на подписку Oracle Java SE”.
Идентичные фунционально и взаимозаменяемые.
Oracle JDK, лизензируемый по BCL, исторически содержал «коммерческие функции», которые не были доступны в сборках OpenJDK. Как и было обещано, за последний год Oracle добавила эти функции в OpenJDK, включая:
Чем были и стали Oracle JDK и OpenJDK
Вплоть до Java 9 существовал бинарный выпуск Java сборки Oracle (Sun Microsystems), который использовался в производственной среде большинством разработчиков и компаний. Эта бинарность была основана на открытом исходном коде Java и содержала некоторые улучшения – дополнительные корпоративные инструменты, такие как Java Flight Recorder, Java Mission Control и некоторые другие функции вроде Application Class-Data Sharing.
Сборка OpenJDK создавалась из открытого исходного кода Java, в котором никаких улучшений не было. Эту сборку Java использовали те, кто хотел поэкспериментировать со свойствами Java, изменить код или просто по каким бы то ни было причинам были приверженцами исходного открытого кода. Хотя вы должны были загрузить исходный код и скомпилировать его для себя.
Начиная с Java 9, Oracle стала предоставлять OpenJDK параллельно с Oracle JDK. Также компания анонсировала, что она хочет сократить разрыв между характеристиками, производительностью и стабильностью двух версий, и как только это произойдет, сделать Oracle JDK платной. На тот момент и OpenJDK, и Oracle JDK были доступны бесплатно как бинарные сборки от Oracle. Это были Java 9 и Java 10.
После выпуска Java 11 это прекратилось. OpenJDK по-прежнему доступна бесплатно, но Oracle JDK для производственных систем стала платной. Существенной разницы между двумя версиями больше нет. У коммерческой версии есть инсталлятор, в то время как у OpenJDK – только ZIP-файл. Есть и другие различия, но на них пользователям Java не стоит обращать внимание. Технически детализированный список отличий описан Дональдом Смитом, старшим директором управления продуктами в Oracle в этой статье.
Более того, Oracle JDK по-прежнему бесплатен для других, даже коммерческих пользователей. Oracle JDK можно свободно использовать для:
• разработки
• тестирования
• прототипирования
• демонстрацииВы можете использовать OpenJDK для других целей или заплатить Oracle и использовать Oracle JDK и получить поддержку. Поддержка — это хорошо.
Java 17 и последующие версии
Возможно, вы начинаете новый проект на Java и хотите использовать самую современную версию JDK. В этом случае вы можете установить Oracle JDK 17, получать бесплатные обновления оставшиеся 2,5 года, а затем перейти на новую LTS-версию. Но обновление версии — дело не одного дня. Каждый релиз Java включает новые фичи, а некоторые фичи удаляются или помечаются как устаревшие. К моменту завершения перехода уже выйдет новая версия. Поэтому ваши разработчики будут тратить большую часть времени на изменение кода, а не на работу над ПО.
С другой стороны, вы можете получать бесплатные обновления до выхода Java 21, а затем оформить подписку для получения обновлений JDK 17.
Третий вариант — переход на дистрибутив OpenJDK. Между Oracle JDK и OpenJDK практически нет технических отличий, обновления безопасности выходят ежеквартально в соответствии с графиком CPU-релизов Oracle, а при необходимости вы можете оформить коммерческую поддержку.
Поскольку детальное сравнение Oracle JDK и OpenJDK не является предметом данной статьи, скачайте наш технический документ «Семь причин для миграции на OpenJDK» и убедитесь в преимуществах OpenJDK для вашего бизнеса.
Читайте также: