jugLviv

Meta


Share on:


jugLviv Leader, CTO @Software Service&Innovation https://software-innovation.ch/

Java is Still Free

Andriy AndrunevchynAndriy Andrunevchyn

Java все ще безкоштовна

v.3.0.0

Зі змінами у розповсюдженні та підтримці Oracle JDK виникла невизначеність щодо прав на використання Oracle JDK порівняно зі збірками Oracle OpenJDK або збірками OpenJDK від інших постачальників. Існують різні способи отримати безкоштовні оновлення (включно з безпековими) та розглянути доступні моделі (нові та існуючі) підтримки з оплатою від кількох постачальників. У цьому документі є розділ “Коротка версія” та дуже детальний розділ “Довга версія” з усіма подробицями.

Зміст

Скорочена версія 

Довша версія

Коротка версія

Ви все ще можете отримати збірки OpenJDK від декількох постачальників (включаючи Oracle) з повною свободою в рамках ліцензії GPLv2+CE. Oracle JDK залишається безкоштовним (безоплатним) у деяких випадках. Подивіться решту цього розділу щоб дізнатись деталі.

Java SE / OpenJDK /Oracle OpenJDK / Oracle JDK

Спільнота OpenJDK створює і підтримує відкриті Reference Implementation (RI) специфікації Java SE згідно з Java Community Process (JCP) та визначає загальні Java Specification Request (JSR) для кожного релізу.
Існують реалізації (в основному на базі OpenJDK) Java SE від різних постачальників, таких як Alibaba, Amazon, Azul, BellSoft, Eclipse Adoptium (нащадок AdoptOpenJDK), IBM, Microsoft, Red Hat, Oracle, SAP та інші.
Oracle JDK 8 пройшов процес “Завершення публічних оновлень”, що означає, що оновлення з квітня 2019 року вимагають контракту підтримки для використання в продакшні. Як вже зазначено вище, існують повністю безкоштовні ліцензовані збірки OpenJDK 8, 11 та 17 від інших постачальників.
Oracle також надає безкоштовні бінарні файли для Oracle JDK 17.

Є декілька варіантів отримання JDK; цей документ фокусується на Java SE 8, 11 та 17.

Залишаючись з Java SE 8

Деякі люди хочуть продовжувати використовувати Java SE 8 з різних причин.

  1. Починаючи з оновлення квітня 2019 року, Oracle JDK 8 підлягає комерційним обмеженням. Щоб отримати оновлену бінарну версію Java SE 8, користувачі можуть придбати платний план підтримки для Oracle JDK 8 або використовувати бінарну версію Java SE 8 / OpenJDK 8 від іншого постачальника.
  2. Якщо ви не використовуєте Oracle JDK 8, ваш поточний постачальник Java SE 8 / OpenJDK 8 може пропонувати оновлення або платні плани підтримки.

Безкоштовні та вільні у користуванні дистрибутиви JAVA SE 8, що обрати?

Якщо вам потрібні безкоштовні оновлення (включаючи безпекові) для Java SE 8, використовуйте дистрибутиви OpenJDK, які успішно проходять TCK (Technology Compatibility Kit). Наприклад, Amazon, Azul, BellSoft, Eclipse Adoptium, IBM, Microsoft, Red Hat, SAP та інші.

Обираючи Java SE 11

У вас є кілька варіантів. Будь ласка, уважно вивчіть їх, особливо те, як Oracle JDK керує випусками та оновленнями для Java SE 11.

  1. Для Java SE 11 Oracle надає свої JDK (на основі OpenJDK) за допомогою:
    • Збірки Oracle OpenJDK 11 – за ліцензією GPLv2+CE
    • Oracle JDK – за комерційною ліцензією (але безкоштовно для індивідуального використання, розробки, тестування, прототипування, демонстрації та з певними типами додатків), для тих, хто не бажає використовувати GPLv2+CE або хто використовує Oracle JDK з продуктом або сервісом Oracle.
    Примітка: Oracle надає два квартальні оновлення для своїх збірок Oracle OpenJDK, а потім переводить користувачів на наступну версію кожні шість місяців (це стосується LTS версій).
  2. Ви також можете отримати бінарні дистрибутиви Java SE / OpenJDK від різних постачальників. Ці постачальники надають оновлення (включаючи безпекові) на різний період, але зазвичай триваліше для версій LTS.

Безкоштовні та вільні у користуванні дистрибутиви JAVA SE 11, що обрати?

Якщо вам потрібні безкоштовні оновлення (включаючи безпекові) для Java SE 11, використовуйте дистрибутиви OpenJDK, які успішно проходять TCK (Technology Compatibility Kit). Наприклад, Amazon, Azul, BellSoft, Eclipse Adoptium, IBM, Microsoft, Red Hat, SAP та інші.

Обираючи Java SE 17 (LTS)

У вас є кілька варіантів. Будь ласка, уважно вивчіть їх, особливо те, як Oracle JDK керує випусками та оновленнями для Java SE 17.

  1. Починаючи з Java SE 17, Oracle надає свої JDK (на основі OpenJDK) за допомогою:
    • Збірки Oracle OpenJDK – за ліцензією GPLv2+CEOracle JDK – за ліцензією No-Fee Terms and Conditions (NFTC) на тривалість трьох років, після чого застосовується звичайна комерційна ліцензія.
    Примітка: Oracle випускаж два квартальні оновлення для своїх збірок Oracle OpenJDK, а потім переводить користувачів на наступну версію кожні шість місяців (це стосується LTS версій)
    Примітка: Ліцензія NFTC має деякі обмеження щодо безкоштовного розповсюдження Oracle JDK 17. Будь ласка, переконайтеся, що ви уважно прочитали ліцензію.
  2. Ви також можете отримати бінарні дистрибутиви Java SE / OpenJDK від різних постачальників. Ці постачальники надають оновлення (включаючи безпекові) на різний період, але зазвичай триваліше для версій LTS.

Безкоштовні та вільні у користуванні дистрибутиви JAVA SE 17, що обрати?

Якщо вам потрібні безкоштовні оновлення (включаючи безпекові) для Java SE 17, використовуйте дистрибутиви OpenJDK, які успішно проходять TCK (Technology Compatibility Kit). Наприклад, Amazon, Azul, BellSoft, Eclipse Adoptium, IBM, Microsoft, Red Hat, SAP та інші.

Платна підтримка

Існує широкий спектр платних варіантів підтримки для бінарних версій Java SE / OpenJDK 8, 11 та 17 від Azul, BellSoft, IBM, Oracle, Red Hat та інших. Azul також пропонує версії середньострокової підтримки.


 

Довга версія

Зверніть увагу! Цей розділ містить багато деталей, оскільки є кілька нюансів, які треба врахувати. Будь ласка, виділіть собі та своїм колегам достатньо часу для повного прочитання цього тексту. Ви будете вдячні собі за це, серйозно.

Ми також хочемо подякувати Саймону Рітеру, Стівену Коулборну, Гендріку Ебберсу, Дональду Сміту, Джонасу Конраду та багатьом іншим за їхні ранішні повідомлення та дозвіл на використання їх матеріалів. Додаток І – Підписники, Подяки та Посилання містить повний список акредитацій та підписників цього документу.

Залишайте свої відгуки! Використовуйте це посилання, де ви можете запропонувати правки та коментарі.

Зміни

Ми будемо оновлювати цей документ для нової інформації або перевіреної корекції. Будь ласка, перевіряйте його на оновлення тут і слідкуйте за нашим обліковим записом @Java_Champions в Twitter.

Версія

Дата

Коментар

1.0.0

17 Sept 2018 1000 UTC

Перша публічна версія

1.0.1

29 Nov 2018 1951 UTC

Граматичні правки

2.0.0

01 Mar 2019 2127 UTC

Оновлення, що відображають поточну екосистему

2.0.1

06 Mar 2019 0955 UTC

Незначні оновленя Liberica

2.0.2

09 Mar 2019 1439 UTC

Незначні оновленя Red Hat OpenJDK

2.0.3

27 Mar 2019 0906 UTC

Уточнено безпекові оновлення

2.0.4

11 June 2019 1141 UTC

Незначні оновленя Azul

2.0.5

24 June 2020 2226 UTC

Додано Adoptium і MSFT, видалено jClarity

2.0.6

29 January 2021 1433 UTC

Adoptium vs. AdoptOpenJDK і 17 (LTS).

2.1.0

15 Mar 2021 1439 UTC

Grammarly Professional pass

2.1.1

18 Apr 2021 1319 UTC

Додано OpenLogic

2.1.2

24th June 2021 1517 UTC

Додано Microsoft Build of OpenJDK

3.0.0

19th Sept 2021 1450 UTC

Java 17 і нове ліцензування Oracle

Вступ

З останніми змінами у розповсюдженні та підтримці Oracle JDK виникла невизначеність щодо майбутнього Java, термінів життєвого циклу та підтримки, наданої постачальниками. Цей документ резюмує зміни, які внесла Oracle, і варіанти, доступні користувачам Java SE.

Що ми маємо на увазі під “FREE” (software)?

Коротко, слово “FREE” має два різних значення в програмному забезпеченні:

  • “безкоштовний” відноситься до вартості (тобто грошей), які потрібно заплатити за програмне забезпечення (тобто без оплати).”вільний у використанні” відноситься до того, що ви можете робити з програмним забезпеченням.


Майже всі постачальники пропонують варіант “безкоштовний як пиво”. Однак це обмежено для деяких постачальників (тобто перехід до контракту підтримки для оновлень після певного часу).

Існують пропріетарні або обмежені версії реалізації Java SE (наприклад, Azul Zing, Oracle JDK та інші). Щоб отримати “безкоштовний як свобода слова” дистрибутив, ви, зазвичай, обираєте дистрибутив OpenJDK (наприклад, Azul’s Zulu, Bellsoft’s Liberica, Eclipse Adoptium’s Temurin та інші), оскільки вони мають ліцензію GPLv2+CE.

Ці зміни відбулися відносно короткого періоду часу, що призвело до фактично невірних повідомлень, таких як: Стаття DZone – Чи перебуває Java під загрозою? Що, на щастя, урівноважують більш точні повідомлення, такі як: 

Ця стаття охопить основні проблеми та заходи, які вживаються для вирішення проблем екосистеми. Ви переконаєтесь, що спільнота пильнує за Java SE і майбутнє Java надійнішим, ніж будь-коли!

Новий шестимісячний цикл релізів та LTS

Java SE релізить нову версію кожні шість місяців з використанням нової схеми нумерації, яка була оголошена у 2017 році. Завдяки поліпшенню процесу JCP, коміттери OpenJDK тепер можуть впроваджувати нові функції зі зміною специфікації (наприклад, var у Java SE 10) за шестимісячним календарем.

Що означає LTS у котексті JAVA / OPENJDK?

Підтримка в довгостроковій перспективі (LTS) в OpenJDK – це визначення того, як довго вендор буде підтримувати свої бінарні файли. На практиці різні учасники OpenJDK мають неофіційну домовленість про те, що вони будуть підтримувати вихідний код протягом більш тривалого періоду. Наразі до LTS-версій відносяться версії 8, 11 та 17. Існує пропозиція змінити цикл LTS на два роки (тобто на кожні чотири основні версії).
Oracle очолює підтримку вихідного коду OpenJDK “перші два випуски оновлень кожної функціональної версії, незалежно від того, чи вона є LTS чи ні, після чого передає цю обов’язковість іншим учасникам, якщо такі є“. У цей час всі інші вендори продовжують працювати у проекті оновлень OpenJDK для цієї версії, тоді як Oracle забезпечує свої виправлення для Oracle JDK.
Примітка: Це означає, що Oracle JDK може відрізнятися від бінарних файлів на базі OpenJDK, які надають інші постачальники (ЗАУВАЖЕННЯ: це завжди було так!). Однак різні учасники OpenJDK та інші лідери проекту, як правило, тримають їх якомога більш схожими

Підтримка означає забезпечення випусків оновлень із застосуванням патчів безпеки та виправлень критичних помилок.

різниця між оновленням та підтримкою

Оновлення відносяться до виправлень коду (включаючи безпекові), які застосовуються до OpenJDK та Oracle JDK. Оновлення OpenJDK завжди є безкоштовними, але кожен вендор може обрати платні оновлення, тобто підтримку.
Підтримка означає зобов’язання виправляти помилки, і це вимагає наявності співробітників, які відповідають на запити користувачів, що коштує гроші. ЗАУВАЖЕННЯ: Для Oracle JDK або самого OpenJDK ніколи не було безкоштовної підтримки.

Oracle та інші розробники OpenJDK випускали оновлення до OpenJDK 8 / Oracle JDK 8 в межах “проміжного релізу”. Кожен наступний проміжний реліз заміняв попередні версії, наприклад, 8u91, 8u111 та 8u131 (за шестимісячним календарем). Наприклад, після випуску 8u111 ви не отримуєте оновлення для 8u91.

Починаючи з OpenJDK 9 / Oracle JDK 9, набрав чинності новий шестимісячний цикл випуску. Оновлення тепер відбуваються між “проміжними релізами”, тобто після випуску 12 версії ви не будете отримувати оновлення для 11 від Oracle. Однак інші коміттери OpenJDK будуть випускати оновлення.

План оновлень OracleJDK

До Java 8 Oracle випускав оновлення для Oracle JDK протягом 3+ років та дозволяв використання в особистих та комерційних середовищах. Оновлення не включали підтримку, а для підтримки було необхідно придбати ліцензії від Oracle. Платна підтримка також передбачала триваліший цикл оновлень.

Починаючи з Java 9, Oracle перейшов до швидкого циклу для Oracle JDK та почав випускати збірки Oracle OpenJDK. Oracle буде надавати оновлення протягом шести місяців після випуску наступної версії. Якщо вам потрібні оновлення або підтримка на триваліший період або для використання в продакшні (тобто ви маєте використовувати Oracle JDK, а не білди Oracle OpenJDK), вам потрібно придбати підтримку від Oracle. Час від часу релізи будуть позначатися як “LTS”. Oracle буде надавати підтримку для цих випусків у межах своїх стандартних ліцензій на підтримку протягом тривалого періоду. Наразі план оновлень Oracle для компіляцій Oracle OpenJDK з оновленнями виглядає так:

Oracle OpenJDK Build ВерсіяДата релізуЗавершення безкоштовних оновлень (від Oracle)
8Березень 2014Щонайменше до Січня 2020 (для особистого користування) Кінець Січня 2019 для комерційного вжитку
9Вересень 2017ЗаміненоOracle Oracle OpenJDK build 10
10Березень 2018ЗаміненоOracle Oracle OpenJDK build 11 у Вересні 2018
11Вересень 2018ЗаміненоOracle Oracle OpenJDK build 12
12Березень 2019ЗаміненоOracle Oracle OpenJDK build 13
13Вересень 2019TЗаміненоOracle Oracle OpenJDK build 14
14Березень 2020ЗаміненоOracle Oracle OpenJDK build 15
15Вересень 2020ЗаміненоOracle Oracle OpenJDK build 16
16Березень 2021ЗаміненоOracle OpenJDK build 17
17Вересень 2021Безкоштовні оновлення від Oracle щонайменше три роки

Ідея тут проста. Як і у моделі Java SE ще з часів Sun, Oracle фокусується на інноваціях та розвитку Java SE. Організації, які бажають залишатися на старих версіях, можуть це робити за допомогою платної підтримки. Звичайно, для деяких користувачів та розробників Java SE швидке оновлення не є можливим.

План оновлень OpenJDK

Спільнота OpenJDK працює над безкоштовною реалізацією стандарту Java SE з відкритим вихідним кодом. Oracle активно вносить свій внесок у проект, і це є основою як для білдів Oracle OpenJDK, так і для Oracle JDK. OpenJDK 11+ можна використовувати взаємозамінно з Oracle JDK для програмного забезпечення, яке дотримуються стандарту Java SE. Oracle продовжуватиме розробляти OpenJDK, доки надає оновлення конкретної версії Oracle OpenJDK. Oracle припинятиме розробляти і оновлюватиме поточну версію, коли вийде наступна версія.

Oracle високо цінує ідею спільного утримання та продовження підтримки OpenJDK спільнотою кваліфікованим волонтерським суб’єктом, коли вони переходять до роботи над наступною версією. Поки Oracle відмовляється від ролі лідера проектів оновлень OpenJDK, інші волонтери беруть на себе керівництво проектами, які продовжують оновлюватись за допомогою спільноти.

Наразі волонтери (які, так співпало, працюють у Red Hat) керують оновленнями OpenJDK 11 та OpenJDK 8, а волонтери (які випадково працюють у Azul) наразі керують оновленнями OpenJDK 15, OpenJDK 13 та OpenJDK 7. Важливо зауважити, що хоча волонтери від Red Hat та Azul керують проектами оновлень OpenJDK 7, 8, 11, 13 та 15, вони не є єдиними учасниками! Інші постачальники та члени спільноти надають багато патчів і виправлень. Завдяки всім проектам оновлень OpenJDK відбувається більше внесків ніж будь-коли раніше від компаній-лідерів, таких як Amazon, Azul, BellSoft, Google, IBM, Microsoft, Red Hat, SAP та багатьох інших.

З метою забезпечення послідовності волонтери OpenJDK продовжать цикл оновлень для тих самих версій, які визначені як LTS для Oracle JDK. Наразі план підтримки OpenJDK виглядає наступним чином:

Примітка: Ці дати можуть змінюватися, і кожен проект оновлення має трохи різний зобов’язання з термінами. Тому ми використовуємо термін “принаймні”.

Примітка: офіційно волонтери, а не постачальники, керують проектами оновлень OpenJDK. Коли ми говоримо “Керують”, ми маємо на увазі, що волонтер-керівник випадково працює для цього певного постачальника.

ВерсіяДата релізуРозклад безкоштовних оновлень
OpenJDK 6Не підтримується
OpenJDK 7 (LTS)July 2011Оновлюється щонайменше до Липня 2022, під керівництвом Azul Systems.
OpenJDK 8 (LTS)March 2014Оновлюється щонайменше до Вересня 2026, під керівництвом Red Hat.
OpenJDK 9Sept 2017Замінено OpenJDK 10
OpenJDK 10March 2018Замінено OpenJDK 11
OpenJDK 11 (LTS)Sept 2018Оновлюється щонайменше до Вересня 2026, під керівництвом Red Hat.
OpenJDK 12March 2019Замінено OpenJDK 13
OpenJDK 13 (MTS)Sept 2019Оновлюється щонайменше до Бересня 2023, під керівництвом Azul Systems.
OpenJDK 14March 2021Замінено OpenJDK 15
OpenJDK 15 (MTS)Sept 2021Оновлюється щонайменше до Бересня 2023, під керівництвом Azul Systems.
OpenJDK 16March 2021Замінено OpenJDK 17
OpenJDK 17 (LTS)Sept 2021Оновлюється щонайменше до Квітня 2022 by Oracle, and then [наразі не відомо]. під керівництвом [наразі не відомо].

Постачальники Java SE / OpenJDK

Багато постачальників Java SE / OpenJDK надають оновлення або платні опції підтримки (з оновленнями). У наступних розділах о.

різниця між оновленням та підтримкою

Оновлення відносяться до виправлень коду (включаючи безпекові), які застосовуються до OpenJDK та Oracle JDK. Оновлення OpenJDK завжди є безкоштовними, але кожен вендор може обрати платні оновлення, тобто підтримку.
Підтримка означає зобов’язання виправляти помилки, і це вимагає наявності співробітників, які відповідають на запити користувачів, що коштує гроші. ЗАУВАЖЕННЯ: Для Oracle JDK або самого OpenJDK ніколи не було безкоштовної підтримки.

Чому б я обрав комерційну підтримку?

Якщо вам потрібен швидкі виправлення проблем, хтось хто буде реагувати на запити користувачів або якщо ви хочете мати впевненість, що постачальник підтримує використовуваний вами бінарний код, то Azul, BellSoft, IBM, Red Hat, Oracle та інші пропонують вибір.

філософський погляд на оплату програмного забезпечення з відкритим кодом

Галузь загалом погодилась, що майбутнє належить відкритому коду. Через його “вільність” ліцензії оупенсорс дозволяють використовувати, змінювати та адаптувати програмне забезпечення інших людей без страху перед покаранням.

Багато людей також насолоджуються “безкоштовністю” багатьох програм з відкритим кодом. Але це коштує авторам дорого! Розробники програмного забезпечення, як і будь-хто інший, потребують житло та їжу. Постачальники (особливо Oracle) вкладають великі кошти в Java SE (десятки мільйонів доларів на рік як мінімум), і їм потрібно якось оплатити ці витрати!

Тому хоча ви точно не зобов’язані обирати платну опцію підтримки від одного з постачальників, іноді варто подумати про те, як ви, кінцеві користувачі, можете підтримати екосистему Java SE, щоб забезпечити їй тривале майбутнє!

Огляд постачальників

Самостійна збірка

Ви можете збудувати OpenJDK самостійно з вихідних кодів. Хоча це не рекомендується, можуть бути ситуації, коли ви хочете це зробити. Вихідні коди OpenJDK поступово переходять з Mercurial на Git / GitHub. Eclipse Adoptium надає скрипти, які допоможуть вам збудувати його для будь-якої платформи

Огляд бінарних дистрибутивів

ДистрибутивВерсіяTCKПублічні оновленняКомерційна підтримка
Eclipse Temurin by Adoptium8, 11, 17Yes17: Щонайменше Вересень 2024
11: Щонайменше Вересень 2023
8: Щонайменше Вересень 2023
Azul, IBM
Amazon Corretto8, 11, 17Yes17: Щонайменше Вересень 2029
11: Щонайменше Вересень 2027
8: Щонайменше Травень 2026
AWS Enterprise Support
Azul Zulu builds of OpenJDK7, 8, 11, 13, 15, 17Yes17 LTS: Вересень 2029
11 LTS: Вересень 2026
8 LTS: Грудень 2030
7 LTS: Липень 2022
15 MTS: Березень 2023
13 MTS: Березень 2023
Azul
Alibaba Dragonwell8,11,17No17: Щонайменше Вересень 2026
11: Щонайменше Вересень 2024
8: Щонайменше Червень 2023
Alibaba Cloud Enterprise Support
BellSoft Liberica JDK7, 8, 11, 17Yes17: Щонайменше 2030
11: Щонайменше 2027
8: Щонайменше 2030
7: 2026 (підтримка клієнтів)
BellSoft
IBM Semeru Open Edition8, 11, 17No17: TBC
11: Жовтень 2024
8: Травень 2026
IBM
IBM Semeru Certified Edition11, 17Yes17: TBC
11: Жовтень 2024
8: Травень 2026
IBM
Microsoft Build of OpenJDK11, 17 Yes17: Щонайменше Вересень 2027
11: Щонайменше Жовтень 2024
Microsoft*
OpenLogic8, 11??OpenLogic
Oracle OpenJDK Builds 11, 17Yes17: ?11: Щонайменше Березень 2019No
Oracle JDK8, 11, 17Yes17: 11: 8: Oracle
Red Hat Build of OpenJDK8, 11Yes17: TBC
11: Жовтень 2024
8: Травень 2026
Red Hat
SAP SapMachine11Yes17: 11: Щонайменше Вересеньt 2022SAP³

* Microsoft Support Безкоштовна комерційна підтримка для Azure, Azure Stack, Azure Arc

Безкоштовні бінарні дистрибутиви

Повний перелік на Wikipedia.  Ми наводимо тільки найважливівші розробки.

Дистрибутиви з комерційною підтримкою

Alibaba Dragonwell

Amazon Corretto:

Azul Systems Zulu:

BellSoft Liberica:

Eclipse Temurin by Adoptium (successor to AdoptOpenJDK)

IBM Semeru [OpenJDK class libraries with Eclipse OpenJ9 VM]:

Microsoft Build of OpenJDK:

OpenLogic OpenJDK

Oracle JDK:

Red Hat:

Linux дистрибутиви

Різні дистрибутиви Linux продовжуватимуть надавати OpenJDK для своїх відповідних дистрибутивів, включаючи, але не обмежуючись, Debian, Ubuntu, CentOS, Fedora, Mint, Alpine та інші.

Варіанти підтримки

Зазвичай дистрибутиви Linux не надають платну підтримку, за винятком Red Hat для OpenJDK на RHEL. Будь ласка, відвідайте домашню сторінку свого Linux дистрибутива для отримання додаткової інформації.

Alibaba Cloud (Dragonwell)

Alibaba Dragonwell, як вихідний код OpenJDK, є дистрибутивом, створеним компанією Alibaba, оптимізованим для його онлайн-торгівлі, фінансових та логістичних застосунків, що працюють на понад 100 000 серверах. Dragonwell зараз доступний для Linux/x86_64, AArch64.

Варіанти підтримки

Alibaba Dragonwell підтримує квартальні випуски версій LTS з виправленням помилок і оновленнями безпеки. Крім того, всі користувачі можуть подавати запити на виправлення (pull requests) на Dragonwell8 і Dragonwell11 для підтримки спільноти. Крім того, клієнти Alibaba Cloud можуть подавати запити на підтримку через програму підтримки клієнтів Alibaba Cloud для всіх випадків використання JDK.

Важливі посилання

Amazon (Corretto)

Amazon Corretto – це безкоштовний, багатоплатформний, готовий до використання дистрибутив OpenJDK. Corretto поставляється з довгостроковою підтримкою, яка включає поліпшення продуктивності та виправлення безпеки. Corretto сертифіковано як сумісний зі стандартом Java SE. За допомогою Corretto ви можете розробляти та запускати Java-додатки на таких операційних системах, як Linux, Windows та macOS. Corretto підтримує 32- і 64-бітні версії ARM і x86 CPU, включаючи сім’ї Graviton і M1.

Варіанти підтримки

Amazon пропонує безкоштовну підтримку та щоквартальне виправлення помилок та оновлення безпеки для випусків з довгостроковою підтримкою (LTS) OpenJDK безкоштовно. Amazon підтримує:

Будь-який клієнт може створити тікет на https://github.com/corretto/ для розгляду командою Corretto. Клієнти з угодою підтримки Enterprise AWS можуть подавати приватні запити на підтримку AWS для всіх випадків використання JDK.

Важливі посилання

Azul (Zulu builds of OpenJDK)

Безкоштовні збірки Azul Zulu OpenJDK охоплюють широкий спектр версій OpenJDK (від 7 до 17) і цілеві платформи з опублікованою дорожною картою підтримки. Комерційна підтримка за бажанням доступна для тих, хто шукає стабілізовані збірки з безпекою, гарантією SLA або для виконання законодавчих вимог.

Варіанти підтримки

Azul надає та підтримує кілька дистрибутивів на основі OpenJDK як частину своїх пропозицій на платформі Azul, включ

аючи збірки Zulu OpenJDK, збірки Zulu Prime OpenJDK (раніше відомі як Zing) та підтримку для збірок Eclipse Temurin. Підписки на підтримку включають публічно доступні збірки, що відстежують вміст оновлень OpenJDK (відомі як релізи PSU), а також доступ до стабілізованих оновлень безпеки (релізи CPU). Варіанти підтримки включають гарантії на невтілювання, індемніфікацію та SLA підтримку.

Важливі посилання

BellSoft (Liberica)

Liberica JDK є підтримуваним дистрибутивом на основі OpenJDK для використання на персональних комп’ютерах, серверах або вбудованих системах. Підтримувані платформи: Linux x86 32 і 64 біта, Windows x86 32 і 64 біти, MacOS X, Linux ARM 32 і 64 біта, Solaris SPARC та x86, Linux PPC 64 біта. Liberica JDK безкоштовний. Комерційна підтримка є необов’язковою. 

Варіанти підтримки

Liberica JDK має комерційну підтримку для версій LTS, включаючи JDK 6 та 7, оновлення CPU, спеціальні збірки для нотарізації та багато інших функцій. Вартість підтримки розраховується на основі кількості робочих станцій, фізичних або віртуальних серверів або вбудованих платформ.

Важливі посилання

Eclipse Temurin від Adoptium – наступник AdoptOpenJDK

Проект Eclipse Adoptium підтримується компаніями Alibaba, Azul, Huawei, IBM, Microsoft, Red Hat та багатьма іншими. Він надає дистрибутиви бінарних файлів OpenJDK (на основі Hotspot) для широкого спектру платформ (Linux, Mac, Windows 32/64, Arm 32/64, z/OS, Solaris, AIX, PPC, s390x та багато інших). Наразі він виробляє бінарні файли Temurin, але також буде служити як маркетплейс для інших дистрибутивів від виробників.

Варіанти підтримки

  • Eclipse Adoptium пропонує підтримку спільноти та надає добре протестовані бінарні файли від версій OpenJDK.
  • Azul надає комерційну підтримку для бінарних файлів Temurin, побудованих у Eclipse Adoptium.
  • IBM надає комерційну підтримку для бінарних файлів Temurin, побудованих у Eclipse Adoptium.
  • Perforce, команда в складі OpenLogic (американська компанія з ОС) надає підтримку стороннім бінарним файлам від всіх версій (на 06/05/2021).

Важливі посилання

IBM

IBM надає нативні бандли JDK для AIX, Linux (на платформах x86, Power, zSystems), z/OS та IBM i. IBM пропонує IBM SDK для Java SE версій з продуктами або платформами IBM та для розробки з використанням developerWorks. IBM також підтримує бінарні файли OpenJDK LTS, побудовані та протестовані в рамках проекту Eclipse Adoptium.

Варіанти підтримки

Для Java SE 7 та 8 IBM все ще надає оновлення безпеки та виправлення помилок. Цикл підтримки IBM буде продовжуватися. Відповідно до нового графіка випуску Java SE, IBM оголосила, що бінарні файли LTS будуть доступні від проекту Eclipse Adoptium.

Важливі посилання

Microsoft

Microsoft Build of OpenJDK тепер доступний для використання на Linux, Mac OS X, Windows x86-64 та Aarch64.

Варіанти підтримки

Див. документацію щодо підтримки Microsoft Build of OpenJDK, але, коротко кажучи, Microsoft надає комерційну підтримку лише для клієнтів, у яких є підтримувані плани підтримки Azure, Azure Stack та Azure Arc. Для підтримки на рівні спільноти розробників та користувачів можна перейти на сторінку Microsoft Build of OpenJDK у GitHub.

Важливі посилання

Oracle

Oracle тепер випускає два бінарника JDK: Oracle JDK та Oracle OpenJDK.

Варіанти підтримки

Oracle опублікувала блогпост, в якому анонсували нову ліцензію NFTC для Oracle JDK 17 та супровідний FAQ.

FAQ також містить посилання на ліцензію OTN та GPLv2 with the Classpath Exception.

Важливі посилання

Red Hat

Red Hat створює бінарники OpenJDK для розробників і є самостійним підтримуваним продуктом і частиною Red Hat Enterprise Linux та різноманітних продуктів. Red Hat також надає свої вихідні RPM-пакети OpenJDK для CentOS. Зазвичай за 24-72 години команда CentOS компілює збірки на основі цих пакетів та надає їх для дистрибутиву CentOS. 

Варіанти підтримки

Red Hat підтримує версії LTS OpenJDK з OpenJDK8 та OpenJDK 11 щонайменше протягом шести років від часу їх анонсування Red Hat. У статті на веб-сайті Red Hat розглядаються дати випуску та варіанти. Red Hat оголосить свою підтримку для бінарних файлів Red Hat OpenJDK 17 в належному порядку.

Білди для програмістів є безкоштовними, але не мають підтримки. Для отримання підтримки виробників мають використовувати бінарні файли, завантажені з порталу підтримки клієнтів.

Red Hat надає кілька збірок проекту OpenJDK, доступних на веб-сайті як послугу спільноті, будь ласка, пам’ятайте, що ці збірки не підтримуються Red Hat.

Важливі посилання

SAP

SAP створює публічний, відкритий, на основі OpenJDK дистрибутив JDK під назвою SapMachine для набору підтримуваних платформ: Linux x86 64 біта, Windows x86 64 біти, MacOS X та Linux ppc64le. Також є бета-версія для Linux ARM 64 біти. 

Варіанти підтримки

SAP пропонує комерційну підтримку для клієнтів SAP. Додаткова підтримка надається на базі найкращих можливостей через GitHub actions.

Важливі посилання

https://sapmachine.io/

Java Desktop / Java Web Start / JavaFX

Вам варто знати про зміни в Desktop Java SE, що починаються з Oracle JDK 11.

JavaFX / OpenJFX

Починаючи з Java SE 11, ні в OpenJDK-збірках, ні в бінарних файлах Oracle JDK не включаються бібліотеки JavaFX. Компоненти JavaFX тепер є частиною окремого набору розробки (SDK), і ви можете використовувати їх артефакти за допомогою засобів збірки (наприклад, Apache Maven, Gradle і ін.). Як позитивний наслідок такого роз’єднання, розробка JavaFX тепер має свій власний план розвитку.

Oracle JDK включав JavaFX за замовчуванням у версії Oracle Java 8, але Oracle JDK 11 і новіші версії не включають JavaFX.

Розробка JavaFX продовжується під керівництвом проекту OpenJFX, який знаходиться під егідою спільноти OpenJDK, під керівництвом Gluon. OpenJFX використовує систему версій та підходи, схожі на проекти Java SE OpenJDK (наприклад, OpenJFX 8, 11, 14,… 17…). Офіційне сховище вихідного коду знаходиться за адресою https://github.com/openjdk/jfx з моменту версії OpenJFX 14. Старіші версії можна знайти за адресою http://hg.openjdk.java.net/openjfx. Різні постачальники OpenJDK включають OpenJFX, наприклад Zulu, Liberica JDK і Corretto, деякі з них надають комерційну підтримку. Gluon надає самостійні збірки для OpenJFX і пропонує план підтримки для компаній, які бажають отримати LTS для JavaFX 11.

Java Packager

Інструмент javapackager, який використовувався для пакування додатків та їх залежностей з частиною JVM, більше не є частиною OpenJFX і вилучений з Oracle JDK і Oracle OpenJDK, починаючи з Java 11. Існує JEP для введення Java Packaging Tool до OpenJDK, але цей новий інструмент не буде готовий до випуску Java 11. Gluon працює над пакуванням додатків Java 11 у виконувані файли з використанням “native image packaging”.

Java Web Start

Якщо ви використовуєте технологію Java Web Start для розповсюдження настільних клієнтів, варто враховувати поточну ситуацію, оскільки Oracle вилучила Web Start з Java.

FAQ

Q: Яка різниця між OpenJDK та Oracle OpenJDK з Oracle JDK?

Тут ми розмовляємо лише про Java 11+ LTS-версії.

Oracle JDK / Oracle OpenJDK та OpenJDK від інших постачальників будуть створені з одного джерела на протязі перших шести місяців оновлень і будуть взаємозамінні на цей період. Єдина відмінність полягає в тому, що ні Oracle JDK, ні Oracle OpenJDK не містять збирач сміття Shenandoah, тоді як у всіх інших збірках OpenJDK він присутній. Після шести місяців з моменту розгалуження, Oracle буде створювати бінарні файли Oracle JDK / Oracle OpenJDK. Інші постачальники OpenJDK продовжать створювати бінарні файли з оновлень проекту OpenJDK. Тому Oracle JDK / Oracle OpenJDK і збірки OpenJDK від різних постачальників можуть відрізнятися незначно. Бінарні файли від різних постачальників можуть змінюватися з часом.

Q: Різниця між OpenJDK від постачальника A та постачальника B?

Тут ми розмовляємо лише про LTS-версії. Різні дистрибютори збирають та упаковують свої бінарні файли, але вони дотримуються стандартної версійності оновлень, яку використовують основні проекти. Загалом можна очікувати, що дистрибутиви, які анонсують певне оновлення, включатимуть різні виправлення та зміни в проектах оновлень OpenJDK.

Відмінність між бінарними файлами на основі OpenJDK передусім полягає в не-ядерних функціях, таких як розширена підтримка моніторингу та діагностики, варіаціях упаковки та цільової платформи. Хоча можуть бути незначні відмінності в кінцевих бінарних файлах (наприклад, специфічний для постачальника інструмент), вони матимуть ту ж базову безпеку і стабільність, яку підтверджено протягом багатьох років.

Q: Якщо я залишуся на Oracle JDK 8 / 11, чи потрібно мені платити за виправлення безпеки та помилок?

Для Oracle JDK 8 особистого використання на робочому столі, розробки, тестування, прототипування, демонстрації та певних типів додатків – ні. Для більшості комерційного використання після оновлення квітня 2019 року – так.

Q: Якщо я залишуся на OpenJDK 8 / 11, чи потрібно мені платити за виправлення безпеки та помилок?

Не обов’язково. Oracle співпрацює зі спільнотою OpenJDK, щоб передати керівництво проектами оновлення OpenJDK іншим учасникам, цей підхід працює добре протягом десятиліть. Red Hat продовжить керівництво в OpenJDK 8 і OpenJDK 11 з допомогою Oracle та інших сторін, забезпечуючи коректне та сумісне внесення важливих виправлень. Потім ви можете вибирати між безкоштовними або платними пропозиціями підтримки, що базуються на бінарних файлах на основі OpenJDK від різних постачальників. Група OpenJDK Vulnerability вирішує питання надання захисту від 0-day атак і уразливостей CVE і забезпечує виходи важливих виправлень якнайшвидше.

Q: Чи будуть Oracle JDK 8 та 11 все ще доступні для завантаження (останній публічний реліз)? Наприклад, компанія має програмне забезпечення, яке працює лише на Oracle JDK 8, і вони розгорнули нову машину після січня 2019 року?

Ви все ще можете завантажувати старі версії Oracle JDK до моменту припинення публічних оновлень. Крім того, Oracle JDK 8 залишається безкоштовним для особистого використання на персональних компютерах, розробки, тестування, прототипування, демонстрації та певних типів додатків, принаймні до 2020 року.

Q: Якщо хтось використовує Oracle JDK 8 для запуску комерційного програмного забезпечення після квітня 2019 року, чи потрібно йому придбати ліцензію?

Ні. Користувач може продовжувати безкоштовне використання Oracle JDK 8 без обмежень. Єдиний платний елемент – оновлення після квітня 2019 року, для отримання яких потрібно придбати “підписку Oracle Java SE”. Підхід “Кінець публічних оновлень” діє вже протягом десятиліть. Також слід зауважити, що Oracle JDK 8 залишається безкоштовним для особистого використання на персональному компютер’і, розробки, тестування, прототипування та демонстрації, а також для певних типів додатків, принаймні до 2020 року.

Q: Якщо хтось використовує Oracle JDK 17 для запуску комерційного програмного забезпечення, чи потрібно йому придбати ліцензію?

Докладні відомості можна знайти в повному тексті ліцензії NFTC.

Q: Що станеться з Oracle Java Web Start після квітня 2019 року? Він продовжить працювати, або з якого моменту потрібно придбати ліцензію?

Оскільки Web Start є частиною Oracle JDK 8, він продовжить працювати і використовуватись без обмежень. Як вже зазначалося, якщо вам потрібні оновлення (виправлення помилок і заходи безпеки), вам доведеться придбати “підписку Java SE”. Для споживачів надається безкоштовна підтримка принаймні до 2020 року. Oracle заявила, що буде продовжувати підтримку (тобто надання комерційних оновлень) для Java Web Start до березня 2025 року. Існує також альтернатива IcedTea-Web, а Karakun має OpenWebStart і надає комерційну підтримку для цього.

Додаток I – Підписанти, вдячність та посилання

Особлива подяка належить наступним особам, які підготували початковий матеріал своїми блог-пости. Багато матеріалу у цьому документі було зібрано (з дозволом) з цих джерел.

  1. Java Champions – A Community Body of Java Experts
    1. Simon Ritter (Deputy CTO – Azul) – Eliminating Java Update Confusion
    2. Stephen Colebourne (Joda-Time author) – Java is still available at Zero Cost and Java 11 Options.
    3. Hendrik Ebbers (Co-founder Karakun) – Do I need to pay for Java now?
    4. Johan Vos (Co-founder Gluon) – JavaFX Release and Support Plans
    5. Martijn Verburg – Lead Author / Facilitator of this document
  2. Oracle via Donald Smith (Senior Director of Product Management)
    1. Faster and Easier User and Redistribution of Java SE
    2. Extension of Oracle Java SE 8 Public Updates and Java Web Start support.
    3. The future of JavaFX and other Java Client Roadmap Updates
    4. Update and FAQ on the Java SE Release Cadence
    5. A Quick Summary on the new Oracle Java SE Subscription
    6. Oracle JDK Releases for Java 11 and later.
  3. Цей матеріал переглянули представники наступних компаній
    1. Amazon (AWS), Azul Systems, IBM, Microsoft, Red Hat
  4. Інші відомі особи
    1. Jonas Konrad – Java Support

Ці люди з екосистеми Java підтримують цей документ як чесний і збалансований запис стану Java SE / OpenJDK та планів щодо безкоштовних оновлень або платної підтримки (з оновленнями).

PersonCredentials
Martijn VerburgAdoptium co-founder, Java Champion, London JUG Leader, Member of JCP Executive Committee, Jakarta EE Steering Committee Member, CEO @ jClarity (acquired by Microsoft)
Hendrik EbbersJava Champion, JUG Dortmund Leader, JSR EG member, Co-founder of Karakun
Ivar GrimstadJava Champion, Malmö JUG Leader, JCP Executive Committee Member, EE4J PMC Lead, Jakarta EE WG Member
Markus EiseleJava Champion
Heinz KabutzJava Champion, The Java Specialists’ Newsletter, JCrete Founder
Ivan St. IvanovJava Champion, Bulgarian JUG Leader, jPrime Conference Organizer, Virtual JUG Leader, VIDA Software co-founder
Stephen ColebourneJava Champion, Creator Joda, and ThreeTen projects
Trisha GeeJava Champion, Sevilla Java User Group Leader, JCP Executive Committee Member, Java Developer Advocate for JetBrains
Josh LongJava Champion, Spring Developer Advocate for Pivotal, best-selling book author and prolific speaker worldwide
Gail AndersonJava Champion, Oracle Developer Champion, co-founder Anderson Software Group, Inc.
Justin LeeJava Champion, JSR EG Member
Mattias KarlssonJava Champion, JUG Leader, and Jfokus conference founder
Andres AlmirayJava Champion, JCP EC Member, Oracle Developer Champion, Hackergarten worldwide
Enrique ZamudioJava Champion, JVMMX (Mexico City JUG), author of j8583, jAlarms, Ceylon to Javascript compiler
Alan WilliamsonJava Champion, author, podcaster,  CTO of MacLaurin Group 
Maurice NaftalinJava Champion, Oracle Developer Champion, author
Mark HecklerJava Champion, Spring Developer Advocate for Pivotal, conference speaker, & published author
Kirk PepperdineJava Champion, jCrete cofounder, Performance tuning advocate, co-founder jClarity
Matt RaibleJava Champion, Web Developer, and Developer Advocate at Okta. Classic VWs Enthusiast.
Henri TremblayJava Champion, Montréal JUG & Devoxx4kids Québec leader, EasyMock and Objenesis lead developer, conference speaker
Cay HorstmannJava Champion, author of “Core Java.”
David HeffelfingerJava Champion, Apache NetBeans Committer, Technical Author, Jakarta EE Consultant, and Instructor.
Josh JuneauJava Champion, Apache NetBeans Committer, Jakarta EE Mojarra Committer, Technical Author, Podcaster
Jonathan GilesJava Champion, Dukes Choice Award winner, Microsoft Cloud Developer Advocate, Co-founder Gluon
Ben EvansJava Champion, former JCP EC Member, co-founder jClarity, author of “Java in a Nutshell” & “Optimizing Java.”
Johan VosJava Champion, Oracle Developer Champion, Gluon co-founder
Thor Henning HetlandJava Champion, Principal at Capra Consulting. Community leader Cantara, javaBin, JavaZone, Oslo Software Architecture, and more.  
Simone BordetJava Champion, JUG Torino co-leader, Jetty team member
Holly CumminsJava Champion, Author of Enterprise OSGi in Action
Daniel BryantJava Champion, co-author of Continuous Delivery in Java, and leader within the LJC 
Mohamed TamanJava Champion, Oracle Groundbreaker Ambassador, JCP member, EGJUG leader. International speaker, Author of “JavaFX essentials”, “Getting started with clean code, Java SE 9”, “Hands-On Java 10 Programming with JShell”, and “Secrets of the Java Champion” Won Duke’s choice 2014, 2015 awards, & JCP outstanding adopt-a-jar participant 2013 awards.
Simon MapleJava Champion, Oracle Developer Champion, Virtual JUG leader, Director of Developer Relations, Snyk.
Oliver GierkeJava Champion, Spring Data Project Lead at Pivotal Software, Inc.
Jean-Michel DoudouxJava Champion, author of “Développons en Java.”
Michael KöllingJava Champion, Creator of BlueJ and Greenfoot, author of ‘Objects First with Java’.
Mert ÇalışkanJava Champion, Director of OpsGenie Academy, Published Author, Speaker
Leonardo M R LimaJava Champion, JSR Spec Lead
Cesar HernandezJava Champion, Senior Software Engineer at Tomitribe,  Eclipse Foundation Committer, Guatemala Java User Group member, Speaker, and board member of Latin America Virtual JUG JEspañol.
Rustam MehmandarovJava Champion, Chief Engineer, Leader of JavaZone, board member, and former leader of javaBin – Norwegian Java User Group.
Paul BakkerJava Champion, Senior Software Engineer at Netflix
Geir Magnusson JrJava Champion, Member Apache Software Foundation, CTO at fuboTV
Jorge VargasJava Champion, JUG Leader JavaUP – Mexico –  Speaker and member of JUG JEspañol.
Bruno SouzaJava Champion, JUG Leader of SouJava
Ian F. DarwinJava Champion, Developer, Author, Trainer, Mentor, Speaker. Author of O’Reilly Java Cookbook, Android Cookbook.

Джерело

jugLviv Leader, CTO @Software Service&Innovation https://software-innovation.ch/