Согласно сообщению оракула, Oracle JDK Releases для Java 11 и новее
Начиная с Java 11, Oracle будет предоставлять выпуски JDK под общедоступной лицензией GNU v2 с открытым исходным кодом , с исключением Classpath (GPLv2 + CPE) и под коммерческой лицензией для тех, кто использует Oracle JDK в качестве части продукта или услуги Oracle, или кто не хочет использовать программное обеспечение с открытым исходным кодом. Эта комбинация использования лицензии с открытым исходным кодом и коммерческой лицензии заменяет исторический « BCL». лицензию », которая имела комбинацию бесплатных и платных коммерческих условий.
Для каждой лицензии будут предоставляться разные сборки, но эти сборки функционально идентичны, за исключением некоторых косметических и упаковочных отличий, подробно описанных ниже.
От BCL до GPL
Лицензия двоичного кода для Oracle Java SE технологого ( «BCL») является основной лицензия на технологию Oracle Java SE на протяжении более десяти лет. BCL разрешает использование без лицензионных сборов при определенных условиях. Чтобы упростить дальнейшую работу, Oracle начала предоставлять лицензионные сборки OpenJDK с открытым исходным кодом начиная с Java 9, используя ту же модель лицензирования, что и платформа Linux. Если вы привыкли получать двоичные файлы Oracle Java SE бесплатно, вы можете просто продолжить делать это с помощью сборок Oracle OpenJDK, доступных на jdk.java.net . Если вы привыкли получать двоичные файлы Oracle Java SE как часть коммерческого продукта или услуги от Oracle, вы можете продолжать получать версии Oracle JDK через службу поддержки Oracle. (MOS) и другие места.
Функционально идентичны и взаимозаменяемы ...
JDK, лицензированный Oracle BCL, исторически содержал «коммерческие функции», которые не были доступны в сборках OpenJDK. Однако, как и было обещано , за прошедший год Oracle предоставила эти возможности сообществу OpenJDK, в том числе:
Следовательно, начиная с Java 11, сборки Oracle JDK и сборки OpenJDK будут практически идентичны.
... но с некоторыми косметическими и упаковочными различиями
По-прежнему остается небольшое количество различий, некоторые умышленные и косметические, а некоторые просто потому, что гарантировано больше времени для обсуждения с участниками OpenJDK.
- Oracle JDK 11 выдает предупреждение при использовании опции -XX: + UnlockCommercialFeatures, тогда как в сборках OpenJDK эта опция приводит к ошибке. Эта опция никогда не была частью OpenJDK, и добавлять ее сейчас не имеет смысла, поскольку в OpenJDK нет коммерческих функций. Это различие сохраняется для того, чтобы пользователям Oracle 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
Это различие сохраняется для того, чтобы обеспечить постоянный опыт для определенных видов использования в наследство. Эти модули либо теперь доступны отдельно как часть OpenJFX , теперь и в OpenJDK, и в Oracle JDK, потому что они были коммерческими функциями, которые Oracle внесла в OpenJDK (например, Flight Recorder), или были удалены из Oracle JDK 11 (например, JNLP) ,
- Вывод команд java --version и java -fullversion будет отличать сборки Oracle JDK от сборок OpenJDK, так что группы поддержки смогут диагностировать любые проблемы, которые могут существовать. В частности, выполнение java --version с помощью сборки Oracle JDK 11 приводит к:
Ява 11 2018-09-25
Java (TM) SE Runtime Environment 18.9 (сборка 11 + 28)
Java HotSpot (TM) 64-битный сервер ВМ 18.9 (сборка 11 + 28, смешанный режим)
И для сборки OpenJDK 11:
openjdk версия "11" 2018-09-25
Среда выполнения OpenJDK 18.9 (сборка 11 + 28)
OpenJDK 64-битный сервер VM 18.9 (сборка 11 + 28, смешанный режим)
- Oracle JDK всегда требовал, чтобы сторонние криптографические поставщики подписывались известным сертификатом. Платформа криптографии в OpenJDK имеет открытый криптографический интерфейс, то есть она не ограничивает, какие поставщики могут быть использованы. Oracle JDK 11 продолжит требовать действительной подписи, а сборки Oracle OpenJDK будут по-прежнему разрешать использование либо действительной подписи, либо неподписанного стороннего поставщика шифрования.
- Oracle JDK 11 будет по-прежнему включать в себя установщики, брендинг и JRE-пакеты для опыта, совместимого с устаревшими настольными системами. Сборки Oracle OpenJDK в настоящее время доступны в виде файлов zip и tar.gz, в то время как рассматриваются альтернативные форматы распространения.