Коротко:
- OpenJDK має декілька значень і може стосуватися:
- безкоштовна та відкрита реалізація платформи Java, стандартне видання (Java SE)
- сховище з відкритим кодом - вихідний код Java, також проект OpenJDK
- попередньо вбудовані бінарні файли OpenJDK, що підтримуються Oracle
- попередньо вбудовані бінарні файли OpenJDK, що підтримуються спільнотою OpenJDK
- AdoptOpenJDK - попередньо вбудовані бінарні файли OpenJDK, що підтримуються спільнотою ( ліцензія з відкритим кодом )
Пояснення:
Попередньо вбудований OpenJDK (або розповсюдження) - бінарні файли, побудовані з http://hg.openjdk.java.net/ , надані як архів чи інсталятор, пропоновані для різних платформ, з можливим контрактом підтримки.
OpenJDK, джерело сховища (його також називають проектом OpenJDK ) - це сховище з відкритим кодом на основі Mercurial , розміщене на веб-сайті
http://hg.openjdk.java.net . Вихідний код Java. Переважна більшість функцій Java (від VM та основних бібліотек до компілятора) заснована виключно на цьому джерельному сховищі. 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, дистрибутив дуже схожий на дистрибутив OpenJDK Oracle (тим, що він безкоштовний, і це збірка, що виробляється компілюванням джерел із сховища джерел OpenJDK). AdoptOpenJDK як сутність не буде підтримувати патчі, тобто не буде «fork / version» AdoptOpenJDK, який істотно відрізняється від висхідного потоку (за винятком деяких патчів сценаріїв побудови для таких речей, як підтримка Win32). Тобто, якщо члени спільноти (Oracle чи інші, але не AdoptOpenJDK як сукупність) підтримують виправлення безпеки оновлень версій OpenJDK LTS, то AdoptOpenJDK надасть збірки для них. Підтримується спільнотою OpenJDK.
OracleJDK - це ще одна дистрибуція. Починаючи з JDK12, не буде жодної безкоштовної версії OracleJDK. Пропозиція дистрибуції JDK Oracle призначена для комерційної підтримки. Ви платите за це, але потім ви можете покластися на підтримку Oracle. На відміну від OpenJDK, що пропонується Oracle, OracleJDK має більш тривалу підтримку версій LTS. Як розробник, ви можете отримати безкоштовну ліцензію на особисте / розвиткове використання лише цього конкретного JDK, але це здебільшого червона оселедець, оскільки "просто бінарний" в основному такий же, як і двійковий файл OpenJDK. Я думаю, це означає, що ви можете завантажувати захищені версії LTS JDK з веб-сайтів Oracle, якщо ви пообіцяєте не використовувати їх у комерційних цілях.
Примітка . Можливо, найкраще назвати збірки OpenJDK від Oracle "побудованими Oracle OpenJDK".
Дональд Сміт, менеджер продуктів Java в Oracle пише :
В ідеалі, ми б просто називали всі версії Oracle JDK як "Oracle JDK", відповідно до GPL або комерційної ліцензії, залежно від вашої ситуації. Однак з історичних причин, хоча невеликі залишилися відмінності існують, ми будемо називати їх окремо як OpenJDK Oracle будує і Oracle JDK.
Постачальники OpenJDK та порівняння
-------------------------------------------------- --------------------------------------
| Постачальник | Безкоштовні побудови | Безкоштовний Бінарний | Розширений | Комерційний | Вседозволений |
| | з Джерела | Поширення | Оновлення | Підтримка | Ліцензія |
| ------------------------------------------------- ------------------------------------- |
| AdoptOpenJDK | Так | Так | Так | Ні | Так |
| Амазонка - Корретто | Так | Так | Так | Ні | Так |
| Azul Zulu | Ні | Так | Так | Так | Так |
| BellSoft Liberica | Ні | Так | Так | Так | Так |
| IBM | Ні | Ні | Так | Так | Так |
| jClarity | Ні | Ні | Так | Так | Так |
| OpenJDK | Так | Так | Так | Ні | Так |
| Oracle JDK | Ні | Так | Ні ** | Так | Ні |
| Oracle OpenJDK | Так | Так | Ні | Ні | Так |
| ojdkbuild | Так | Так | Ні | Ні | Так |
| RedHat | Так | Так | Так | Так | Так |
| SapMachine | Так | Так | Так | Так | Так |
-------------------------------------------------- --------------------------------------
Безкоштовні побудови з джерела - вихідний код розповсюдження є загальнодоступним, і він може зібрати власну збірку
Безкоштовні бінарні дистрибуції - бінарні файли розповсюдження доступні для завантаження та використання
Розширені оновлення - aka LTS (довготривала підтримка) - публічні оновлення за межі 6-місячного життєвого циклу випуску
Комерційна підтримка - деякі постачальники пропонують розширені оновлення та підтримку клієнтів для платників, наприклад Oracle JDK ( детальна інформація про підтримку )
Дозвільна ліцензія - ліцензія на розповсюдження не є захисною, наприклад 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.
Додаткова інформація
Час шукати далі JDK від Oracle Стівена Коулборна
Java все ще безкоштовна спільнотою Java Champions (опубліковано 17 вересня 2018 року)
Java все ще безкоштовна 2.0.0 спільнотою чемпіонів Java (опубліковано 3 березня 2019 року)
Олексій Шипільов про оновлення інтерв'ю JDK від Opsian (опубліковано 27 червня 2019 року)