Заметил такую тему, что даже программисты с опытом не до конца понимаю, что такое OpenJDK. Давайте разбираться.
OpenJDK - это исходный код единственной реализации Java спецификации (JSR, JEP). Других нет. Тут важно то, что это исходный код. Это не дистрибутив. А где же тогда его взять?
Раньше было все просто - Sun Microsystems (а позже Oracle) поставлял бинарники OpenJDK. У Oracle они так и называются Oracle OpenJDK. Но у Oracle есть и коммерческая версия - Oracle JDK (он же Oracle Java SE). Таким образом, Oracle предоставляет нам две версии бинарников - бесплатную для коммерческого использования (GPL лицензия) и платную. Отличаются они на данный момент в основном только уровнем поддержки - в одном случае ее нет (только комьюнити), в другом она есть + есть LTS версии, в то время как у Oracle OpenJDK их попросту нет.
Начиная с 8й джавы Oracle Java SE стала платной для коммерческого использования. Это очень сильно взбударажило интернет, когда многие стали говорить о том, что Java стала платной. Но как мы знаем - платной стала только Oracle Java SE (и то, только для коммерческого использования), а Oracle OpenJDK как выпускалась под GPL лицензией, так и продолжает выпускаться.
На сегодняшний день существует несколько десятков провайдеров JDK. Самые популярные из них это Oracle OpenJDK, Oracle Java SE, Temurin, Carretto, Liberica, Zulu и др. Все они сделаны на основе OpenJDK. Отличия лишь в поддержке + какие-нибудь небольшие утилиты.
При выборе провайдера очень важно обращать внимание на сертификат TCK - technology compatibility kit, который говорит о том, что данный дистрибутив прошел определенный набор тестов на совместимость и соответствие спецификации. Другими словами, мы сможете без проблем поменять провайдера без каких либо изменений в вашем коде, т.к. если оба провайдера сертифицированы, значит они полностью совместимы.
Стоит отметить, что начиная с версии 17 Oracle изменил свою лицензию для Oracle Java SE на «Oracle No-Fee Terms and Conditions», которая позволяет использование данного дистрибутива в продакшене. Таким образом, мы снова можем его бесплатно использовать!
OpenJDK - это исходный код единственной реализации Java спецификации (JSR, JEP). Других нет. Тут важно то, что это исходный код. Это не дистрибутив. А где же тогда его взять?
Раньше было все просто - Sun Microsystems (а позже Oracle) поставлял бинарники OpenJDK. У Oracle они так и называются Oracle OpenJDK. Но у Oracle есть и коммерческая версия - Oracle JDK (он же Oracle Java SE). Таким образом, Oracle предоставляет нам две версии бинарников - бесплатную для коммерческого использования (GPL лицензия) и платную. Отличаются они на данный момент в основном только уровнем поддержки - в одном случае ее нет (только комьюнити), в другом она есть + есть LTS версии, в то время как у Oracle OpenJDK их попросту нет.
Начиная с 8й джавы Oracle Java SE стала платной для коммерческого использования. Это очень сильно взбударажило интернет, когда многие стали говорить о том, что Java стала платной. Но как мы знаем - платной стала только Oracle Java SE (и то, только для коммерческого использования), а Oracle OpenJDK как выпускалась под GPL лицензией, так и продолжает выпускаться.
На сегодняшний день существует несколько десятков провайдеров JDK. Самые популярные из них это Oracle OpenJDK, Oracle Java SE, Temurin, Carretto, Liberica, Zulu и др. Все они сделаны на основе OpenJDK. Отличия лишь в поддержке + какие-нибудь небольшие утилиты.
При выборе провайдера очень важно обращать внимание на сертификат TCK - technology compatibility kit, который говорит о том, что данный дистрибутив прошел определенный набор тестов на совместимость и соответствие спецификации. Другими словами, мы сможете без проблем поменять провайдера без каких либо изменений в вашем коде, т.к. если оба провайдера сертифицированы, значит они полностью совместимы.
Стоит отметить, что начиная с версии 17 Oracle изменил свою лицензию для Oracle Java SE на «Oracle No-Fee Terms and Conditions», которая позволяет использование данного дистрибутива в продакшене. Таким образом, мы снова можем его бесплатно использовать!