Различия между Oracle JDK и OpenJDK

700

ПРИМЕЧАНИЕ. Этот вопрос относится к 2014 году. Начиная с Java 11 OpenJDK и Oracle JDK сходятся.

Есть ли принципиальные различия между Oracle и OpenJDK?

Например, одинаковы ли параметры сборки мусора и других параметров JVM?

GC работает по-разному между двумя?

user1340582
источник
3
Это также может иметь значение, если вы планируете перейти с Oracle на OpenJDK, поскольку Oracle больше не является бесплатной. developers.redhat.com/blog/2018/11/05/…
Лео Уфимцев

Ответы:

338

И OpenJDK, и Oracle JDK создаются и поддерживаются в настоящее время только Oracle.

OpenJDK и Oracle JDK являются реализациями той же спецификации Java, что и TCK (Java Technology Certification Kit).

Большинство поставщиков JDK написаны поверх OpenJDK, выполнив несколько настроек [в основном для замены лицензионных проприетарных компонентов / замены более высокопроизводительными элементами, которые работают только на определенных ОС], без нарушения совместимости TCK.

Многие поставщики реализовали спецификацию Java и получили TCK. Например, IBM J9, Azul Zulu, Azul Zing и Oracle JDK.

Почти каждый существующий JDK является производным от OpenJDK.

Как полагают многие, лицензирование - это изменение между JDK.

Начиная с JDK 11 для доступа к длительной поддержке Oracle JDK / Java SE теперь потребуется коммерческая лицензия. Теперь вам следует обратить внимание на то, какой JDK, который вы устанавливаете, поскольку Oracle JDK без подписки может перестать работать. источник

Ссылка: список виртуальных машин Java

Венкатешвара Рао
источник
13
Итак, вы говорите, что openjdk является базовой линией для всех других jdks, просто они копируют его, а затем подстраивают под его собственные спецификации?
К - Токсичность в СО растет.
24
Я опаздываю на вечеринку, но все равно спрошу. Что jdk приносит в таблицу, чего нет в openjdk? Все эти ответы заставляют openjdk звучать так, как будто он равен или превосходит его во всех отношениях, но если это так, почему Oracle вообще беспокоится о поддержке jdk?
Кефка
@ Karl Morrison Насколько я знаю, ... все, кто реализует спецификацию JVM, делают только так ... но нет четкого правила, по которому нужно следовать этому пути ...
Venkateswara Rao
13
@ Mella OpenJDK <= OracleJDK Например, в Oracle JDK настроено несколько доверенных ключей, которых не было в OpenJDK (сейчас люди просто импортируют их, чтобы заполнить этот пробел) В Oracle JDK есть несколько библиотек SWING, которые предназначены для ускорения рендеринга .. (Кто когда-либо работает с серверными приложениями, может быть неуместен для них) Oracle JDK имеет плагин Applet (та же причина работает выше) Исправление / исправление Oracle JDK будет распространяться и обрабатываться Oracle должным образом, поскольку в OpenJDK практически нет технических средств для обеспечения всех патчи применяются и какой конфликт они будут иметь
Venkateswara Rao
Обратите внимание, что с новой моделью выпуска для Java Oracle планирует максимально сократить разрыв между обоими jdk. Есть ли другие участники с открытым исходным кодом для открытия JDK, кроме разработчиков Oracle? Это необходимо для того, чтобы понять, будет ли достаточно поддержки для переноса исправления из последней версии в предыдущую. Какие-нибудь мысли?
Энди Дафресн
329

Для Java 7 ничего принципиального. Проект OpenJDK в основном основан на HotSpot исходном коде пожертвованном Sun.

Кроме того, OpenJDK был выбран в качестве эталонной реализации для Java 7 и поддерживается инженерами Oracle.

Более подробный ответ от 2012 года о разнице между JVM, JDK, JRE и OpenJDK , который ссылается на сообщение в блоге Oracle :

Вопрос : В чем разница между исходным кодом, найденным в репозитории OpenJDK, и кодом, который вы используете для сборки Oracle JDK?

О : Это очень близко - наш процесс сборки для Oracle JDK выпускает сборку на OpenJDK 7, добавив всего лишь пару частей, таких как код развертывания, который включает в себя реализацию Oracle для плагина Java и Java WebStart, а также некоторый третий закрытый исходный код. сторонние компоненты, такие как графический растеризатор, некоторые сторонние компоненты с открытым исходным кодом, такие как Rhino, и несколько кусочков, вроде дополнительной документации или сторонних шрифтов. В дальнейшем мы намереваемся открыть все компоненты Oracle JDK с открытым исходным кодом, за исключением тех, которые мы рассматриваем как коммерческие функции, такие как JRockit Mission Control (пока недоступно в Oracle JDK), и заменить обремененные сторонние компоненты альтернативами с открытым исходным кодом для достижения более четного паритета. между базами кода.

radai
источник
42
Также есть лицензионные различия.
mcoolive
9
спасибо, я нашел лучший ответ. stackoverflow.com/questions/17360011/…
astroanu
9
На ARM, по крайней мере, эти два, по-видимому, значительно отличаются по производительности. Я должен был бы сделать некоторые профилирование того, почему это происходит, но субъективная разница заключается в том, что «Oracle JDK в порядке» и «OpenJDK полностью непригоден для использования».
Dualed
1
@dualed, тем не менее, android переходит на openjdk начиная с android 7. Похоже, они готовят значительные улучшения. venturebeat.com/2015/12/29/…
Джонни Доу
1
@JohnnyDoe Будем надеяться, что если Google перейдет на OpenJDK, они предоставят апстрим патчами производительности, чтобы он хорошо работал и на ARM вне Android!
сдал экзамен
95

Главное отличие в будущем - это график выпуска и политика поддержки.

OpenJDK

OpenJDK будет выпускать функцию каждые 6 месяцев, которая поддерживается только до следующей версии. По сути, это непрерывный поток релизов, предназначенных для разработчиков.

Oracle JDK

Oracle JDK больше ориентирован на корпоративную аудиторию, которая ценит стабильность. Он основан на одном из выпусков OpenJDK, но затем получает долгосрочную поддержку (LTS). Oracle JDK выпускает релизы каждые 3 года.

введите описание изображения здесь

Источник: https://www.oracle.com/java/java9-screencasts.html?bcid=5582439790001&playerType=single-social&size=events

Гилберт Аренас Кинжал
источник
3
Долгосрочные выпуски требуют, чтобы вы купили коммерческую поддержку, чтобы получить обновления после 6 месяцев выпуска Java. Каково значение долгосрочных выпусков по сравнению с краткосрочными выпусками? Разве краткосрочные выпуски, такие как JDK 9/10, не имеют коммерческой поддержки от Oracle?
Энди Дафресн
@ AndyDufresne, почему вы думаете, что вам придется платить за поддержку только через 6 месяцев? Насколько я понимаю, это временные рамки. Хотя 6 месяцев кажется ужасно коротким ... Я сомневаюсь, что мы можем ожидать публичных обновлений в течение 5 лет, как, например, Java 8, но я не удивлюсь, если бы публичные обновления были в течение 2 или 3 лет. Ссылка - это по адресу : oracle.com/technetwork/java/eol-135779.html .
Кинжал Гилберта Аренаса
1
В сообщении оракула упоминается «Например, выпуск LTS для Oracle JDK 11 (18,9 LTS) будет поддерживаться не менее 5 лет, как описано в Политике поддержки Oracle Lifetime Support». Политика имеет 3 уровня поддержки, ни один из которых не выглядит свободным. Также я упоминаю об этом после просмотра комментария технического директора Azul здесь - blog.takipi.com/java-11-will-include-more-than-just-features/… . Основная цель этой новой стратегии выпуска - не тратить время на поддержку старых версий. Если бы поддержка была бесплатной, модель была бы такой же, какой была до сих пор.
Энди Дюфрен
38

Для Java 8 , Oracle JDK против OpenJDK, я бы взял ключевые различия:

  • OpenJDK - это реализация платформы Java Standard Edition с открытым исходным кодом при участии Oracle и сообщества Java.

  • OpenJDK выпущен по лицензии GPL v2, в которой Oracle JDK лицензируется в соответствии с лицензионным соглашением Oracle для двоичного кода.

  • На самом деле процесс сборки Oracle JDK строится из исходного кода OpenJDK. Таким образом, между Oracle JDK и OpenJDK нет существенных технических различий. Помимо базового кода, Oracle JDK включает в себя реализацию Oracle Java Plugin и Java WebStart. Он также включает сторонние компоненты с закрытым и открытым исходным кодом, такие как графический растеризатор и Rhino. соответственно. OpenJDK Font Renderer и Oracle JDK Flight Recorder - заметные основные различия между Oracle JDK и OpenJDK.

  • Rockit был JVM от Oracle, а из Java SE 7 HotSpot и JRockit слились в одну JVM. Так что теперь у нас есть только объединенная JVM HotSpot.
  • Есть случаи, когда люди утверждают, что у них были проблемы во время работы OpenJDK, и это было решено при переключении на Oracle JDK.
  • Твиттер имеет свой собственный JDK.
  • Программное обеспечение, подобное Minecraft, ожидает использования Oracle JDK. На самом деле, предупреждает.

Полный список различий см. В исходной статье: Процесс разработки Oracle JDK против OpenJDK и Java JDK.

45hook
источник
4
Для Android Studio это больше не так: копия последней версии OpenJDK поставляется в комплекте с Android Studio 2.2 и выше, и эту версию JDK мы рекомендуем использовать для ваших проектов Android. Источник: developer.android.com/studio/intro/studio-config#jdk
MKesper
«Программное обеспечение, такое как Minecraft, предполагает использование Oracle JDK. На самом деле, предупреждает. На самом деле, в Ubuntu официальный установщик Mojang .deb загружает OpenJDK при установке программы запуска.
Moilleadóir
29

JVM Oracle и OpenJDK одинаковы и имеют одинаковые функции GC (в последних версиях 10+). До того, как Oracle управлял JVM OpenJDK, были конкретные различия, которые делали эту старую JVM OpenJDK практически непригодной для использования во многих средах. JVM теперь такие же.

JDK, которые включают JVM как часть комплекта, отличаются лицензированием, расписанием выпуска и обслуживания, а также библиотеками программного обеспечения, включенными в JDK. Решающие различия для меня также означают вещи, которые сделали бы код не запущенным, если бы не присутствовали. Не только лицензирование.

diff --brief -r openjdk oraclejdk

Важно отметить, что следующие файлы отсутствуют в дополнение к множеству других в linux JDK (поэтому, если вы «заявили», что код не работает на OpenJDK, и сделали это на OracleJDK, когда вы использовали javafx, то вы были правы):

Only in jdk-10.0.1/bin: javapackager
Only in jdk-10.0.1/bin: javaws
Only in jdk-10.0.1/bin: jcontrol
Only in jdk-10.0.1/bin: jmc
Only in jdk-10.0.1/bin: jweblauncher
Only in jdk-10.0.1/lib: ant-javafx.jar
Only in jdk-10.0.1/lib: deploy
Only in jdk-10.0.1/lib: deploy.jar
Only in jdk-10.0.1/lib: desktop
Only in jdk-10.0.1/lib: fontconfig.bfc
Only in jdk-10.0.1/lib: fontconfig.properties.src
Only in jdk-10.0.1/lib: fontconfig.RedHat.6.bfc
Only in jdk-10.0.1/lib: fontconfig.RedHat.6.properties.src
Only in jdk-10.0.1/lib: fontconfig.SuSE.11.bfc
Only in jdk-10.0.1/lib: fontconfig.SuSE.11.properties.src
Only in jdk-10.0.1/lib: fonts
Only in jdk-10.0.1/lib: javafx.properties
Only in jdk-10.0.1/lib: javafx-swt.jar
Only in jdk-10.0.1/lib: java.jnlp.jar
Only in jdk-10.0.1/lib: javaws.jar
Only in jdk-10.0.1/lib: jdk.deploy.jar
Only in jdk-10.0.1/lib: jdk.javaws.jar
Only in jdk-10.0.1/lib: jdk.plugin.jar
Only in jdk-10.0.1/lib: jfr
Only in jdk-10.0.1/lib: libavplugin-53.so
Only in jdk-10.0.1/lib: libavplugin-54.so
Only in jdk-10.0.1/lib: libavplugin-55.so
Only in jdk-10.0.1/lib: libavplugin-56.so
Only in jdk-10.0.1/lib: libavplugin-57.so
Only in jdk-10.0.1/lib: libavplugin-ffmpeg-56.so
Only in jdk-10.0.1/lib: libavplugin-ffmpeg-57.so
Only in jdk-10.0.1/lib: libbci.so
Only in jdk-10.0.1/lib: libcmm.so
Only in jdk-10.0.1/lib: libdecora_sse.so
Only in jdk-10.0.1/lib: libdeploy.so
Only in jdk-10.0.1/lib: libfxplugins.so
Only in jdk-10.0.1/lib: libglassgtk2.so
Only in jdk-10.0.1/lib: libglassgtk3.so
Only in jdk-10.0.1/lib: libglass.so
Only in jdk-10.0.1/lib: libgstreamer-lite.so
Only in jdk-10.0.1/lib: libjavafx_font_freetype.so
Only in jdk-10.0.1/lib: libjavafx_font_pango.so
Only in jdk-10.0.1/lib: libjavafx_font.so
Only in jdk-10.0.1/lib: libjavafx_iio.so
Only in jdk-10.0.1/lib: libjfxmedia.so
Only in jdk-10.0.1/lib: libjfxwebkit.so
Only in jdk-10.0.1/lib: libnpjp2.so
Only in jdk-10.0.1/lib: libprism_common.so
Only in jdk-10.0.1/lib: libprism_es2.so
Only in jdk-10.0.1/lib: libprism_sw.so
Only in jdk-10.0.1/lib: librm.so
Only in jdk-10.0.1/lib: libt2k.so
Only in jdk-10.0.1/lib: locale
Only in jdk-10.0.1/lib: missioncontrol
Only in jdk-10.0.1/lib: oblique-fonts
Only in jdk-10.0.1/lib: plugin.jar
Only in jdk-10.0.1/lib: plugin-legacy.jar
Only in jdk-10.0.1/lib/security: blacklist
Only in jdk-10.0.1/lib/security: public_suffix_list.dat
Only in jdk-10.0.1/lib/security: trusted.libraries
Only in openjdk-10.0.1: man`
Марс
источник
5
Спасибо, что указали на реальные отличия: неиспользуемый код - это реальный вопрос. Откуда вы основали свой diff?
Матье
19

Согласно сообщению оракула, 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, в то время как рассматриваются альтернативные форматы распространения.
Нареш Джоши
источник
10

Список немногих оставшихся косметических и упаковочных различий между Oracle JDK 11 и OpenJDK 11 можно найти в этом блоге:

https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later

Короче говоря:

  • Oracle JDK 11 выдает предупреждение при использовании опции -XX: + UnlockCommercialFeatures,
  • его можно настроить для предоставления данных журнала использования инструменту «Advanced Management Console»,
  • всегда требовалось, чтобы сторонние криптографические провайдеры были подписаны известным сертификатом,
  • он будет по-прежнему включать в себя установщиков, брендинг и JRE упаковки,
  • в то время как команда javac --release ведет себя немного по-разному для целей Java 9 и Java 10, и
  • выходные данные команд java --version и java -fullversion будут отличать сборки Oracle JDK от сборок OpenJDK.
Далибор Тема
источник
2
Я заметил, что у большинства ваших ответов была подпись. Я их отредактировал. Пожалуйста, прочитайте Запрещены ли лозунги и подписи? и stackoverflow.com/help/behavior (в частности, раздел «Не используйте подписи, слоганы или приветствия.»)
Марк Роттвил,
7
  1. Oracle будет выпускать релизы каждые три года, а OpenJDK будет выпускаться каждые шесть месяцев.
  2. Oracle обеспечивает долгосрочную поддержку своих выпусков. С другой стороны, OpenJDK поддерживает изменения в выпуске только до выпуска следующей версии.
  3. Oracle JDK был лицензирован в соответствии с Лицензионным соглашением Oracle для двоичного кода, тогда как OpenJDK имеет GNU General Public License (GNU GPL) версии 2 с исключением компоновки.
  4. Продукт Oracle имеет функции Flight Recorder, Java Mission Control и Application Class-Data Sharing, в то время как OpenJDK имеет функцию Font Renderer. Кроме того, Oracle имеет больше опций сборки мусора и лучшие средства визуализации,
  5. Oracle JDK полностью разработан Oracle Corporation, тогда как OpenJDK разработан Oracle, OpenJDK и сообществом Java. Однако в его разработке также принимают активное участие такие первоклассные компании, как Red Hat, Azul Systems, IBM, Apple Inc., SAP AG.

От Java 11 поворот к большому изменению

Oracle изменит свою историческую лицензию «BCL» на сочетание лицензии с открытым исходным кодом и коммерческой лицензии.

  • Набор Oracle для Java 11 выдает предупреждение при использовании опции -XX: + UnlockCommercialFeatures, тогда как в сборках OpenJDK эта опция приводит к ошибке
  • Oracle JDK предлагает конфигурацию для предоставления данных журнала использования инструменту «Advanced Management Console»
  • Oracle всегда требовал, чтобы сторонние криптографические поставщики были подписаны известным сертификатом, в то время как криптографическая структура в OpenJDK имеет открытый криптографический интерфейс, что означает, что нет никаких ограничений относительно того, какие поставщики могут использоваться
  • Oracle JDK 11 будет по-прежнему включать установщики, брендинг и JRE-пакеты, тогда как сборки OpenJDK в настоящее время доступны в виде файлов zip и tar.gz.
  • Команда javac –release ведет себя по-разному для целей Java 9 и Java 10 из-за присутствия некоторых дополнительных модулей в выпуске Oracle
  • Выходные данные команд java –version и java -fullversion будут отличать сборки Oracle от сборок OpenJDK


Обновление: 25 августа 2019 г.



введите описание изображения здесь

для более подробной информации oracle-vs-openjdk

Истак Хоссейн
источник
technology.amis.nl/2018/11/23/…
Юша Алеауб
5

Помимо очевидной разницы в лицензировании, основным отличием OpenJDK от OracleJDK 11 являются обновления стабильности и производительности.

Источник: https://www.youtube.com/watch?v=Adv9--6IcQI&t=385.

Каждые 6 месяцев две кодовые базы будут синхронизированы. Но в течение 6-месячного окна OpenJDK будет получать только обновления безопасности, в то время как OracleJDK будет получать дополнительные обновления стабильности и производительности.

Учитывая, что выпуски обновлений появляются только каждые 3 месяца как для OpenJDK, так и для OracleJDK, это означает, что вы упускаете (максимум) исправления на 3 месяца, пока не выйдет следующий основной выпуск и вы не обновитесь. Однако, если вы решите придерживаться LTS-релизов, тогда коммерческая лицензия приобретает больше смысла.

Гили
источник
3

Кроме того, для Java 8 интересно производительность бенчмарка для реактивной (без блокировки) Spring загрузки приложений REST быть размещены на различных виртуальных машинах МАСС Technology Блог был опубликован в ноябре 2018 года , показывающие , что, среди других отличий:

  • OpenJDK имеет более высокую загрузку процессора, чем OracleJDK,
  • OpenJDK имеет немного меньшее время отклика, чем OracleJDK,
  • OpenJDK использует больше памяти, чем OracleJDK,

Подробности смотрите в исходной статье.

Конечно, YMMV, это только один из ориентиров.

Грег Дубицки
источник
3

Насколько я понимаю, Oracle JDK нельзя использовать в производственной среде, поэтому я не могу легально использовать его (без оплаты) для веб-приложения, которое я создаю для своей компании. Я должен использовать OpenJDK. Пожалуйста, поправьте меня, если я ошибаюсь! Из этой статьи .

Начиная с Java 11, Oracle JDK ограничен средами разработки и тестирования. Oracle JDK можно использовать только в производственной среде, если вы покупаете коммерческую поддержку. Вместо этого Oracle предоставит Java-сборки на основе OpenJDK бесплатно, которые можно использовать в производстве. Но для официального Oracle JDK реальная дорожная карта будет выглядеть так:

ОБНОВЛЕНИЕ: я не прав. Я могу использовать Oracle JDK бесплатно, но не получу обновления безопасности после 6 месяцев, и мы должны принять на себя риск. Посмотрите на приведенный выше раздел статьи «Что означает новый выпуск релизов для моей компании?».

Нетти
источник
Это может больше не быть правдой с JDK 13. Существует новая лицензия для Oracle JDK, согласно Oracle: «Новая лицензия разрешает определенные виды использования, такие как личное использование и использование в целях разработки, бесплатно - но другие виды использования разрешены согласно предыдущие лицензии Oracle JDK могут быть недоступны ". См. Oracle.com/downloads/licenses/javase-license1.html .
А.Л. Фланаган
Просто хотел знать, Текущая версия oracle jdk8u241 бесплатна для производственного использования?
Нирав Шах