Open JDK или Oracle JDK?
Будут ли проблемы при использовании Open JDK в IntelliJ Idea или нет? Стоит ли скачивать проприетарную jdk от Oracle?
А с чего бы это проблемы с OpenJDK?
Смотря для чего, но в 99.9% тебе OpenJDK хватит с головой
Open JDK в IntelliJ Idea или нет? Нет, более того, дефолтная idea поставляется с openjre на которую наложены кастомные патчи в рендере шрифтов, от чего шрифты у идеи самые нормальные среди прочих свинг приложений.
Ну я далеко не какой то супер проггер, так что по идее мне хватит. Но вопрос в том не использует ли Intellij idea какие то фичи, которые есть только в Oracle JDK.
Для запуска Idea рекомендуется использовать их собственный патченный рантайм.
Для разработки пользуйся чем хочешь, тут зависит от задач.
Если ты имеешь ввиду jre, с которого работает IDEA, то лучше использовать тот, который в комплекте.
А если разработка, то OpenJDK тебе хватит, даже если ты супер проггер
Ладно, пошел сносить Open JRE
Я обычно ставлю JDK от Oracle.
Хотя в Open JDK нет ничего плохого.
Что с Идей, что с Иклипсом.
ну ты бы узнал сначала, какие фичи есть в оракловой ждк и коих нет в опен. а там бы и выяснил, что оракл пакует javafx и openjdk и получает oracle jdk
Юзаю IDEA Community + OpenJDK 13 + Kotlin — все пашет как надо.
Саму идею лучше запускать на той JRE, которая идёт с ней. Она пропатчена специально под идею.
А Java-приложения можно разрабатывать и запускать на любой JDK. Сейчас по сути отличия от Oracle JDK и Open JDK нет. Кроме цены, конечно, не думаю, что у тебя завалялась лишняя тысчонка долларов на Oracle JDK.
Я, лично, советую Zulu Community JDK. Серьёзный и качественный продукт.
Лучше всего использовать ту OpenJDK, что идёт вместе с Идеей, они её патчат (в частности поддержку шрифтов) чаще, чем правки доезжают до релиза OpenJDK.
Забудь про Оракловую JDK. Во-первых, она бесплатна только для разработки, в промышленной эксплуатации она платная, а во-вторых её функционал немного порезан по сравнению с OpenJDK, а именно в оракловой нет и никогда не будет Shanandoah (короткопаузный gc).
Саму идею лучше запускать на той JRE, которая идёт с ней. Она пропатчена специально под идею.
Из этого следует, что идею лучше вообще не запускать, так как её разработали плохие программисты. Портить JDK или ещё что-нибудь стандартное ради своей программы — плохая идея.
В Java всем большим компаниям-разработчикам (Oracle, Amazon и т.п.) накласть на десктопы вообще и Swing в частности (JavaFX именно поэтому закопали). Там все на сервер-сайд направлено. А у JetBrains флагманский продукт на Swing — неудивительно что они там что-то допиливают.
С разморозкой. Оракл уже давно JavaFX выкинул.
Из этого следует, что идею лучше вообще не запускать, так как её разработали плохие программисты. Портить JDK или ещё что-нибудь стандартное ради своей программы — плохая идея.
Они шрифты допилил, рендер шрифтов в jre из коробки был отвратительный, именно когда сабпиксельное сглаживание. Не знаю почему их наработки не оказались в апстрим.
Из этого следует, что идею лучше вообще не запускать, так как её разработали плохие программисты.
Портить JDK или ещё что-нибудь стандартное ради своей программы — плохая идея.
А что делать, если JDK рисует вырвиглазные шрифты и не умеет в ретину, а юзеры просят? Посылать их в оракл?
Из этого следует, что ты тупой и нихрена в этом не понимаешь.
Я, лично, советую Zulu Community JDK. Серьёзный и качественный продукт.
Обоснуй. Чем оно лучше OpenJDK/AdoptOpenJDK, кроме того, что они в восьмерку JavaFX пакуют?
- Выкатывают обновления на старые версии.
- Собирают сборки на большее число архитектур, в частности меня волнует Windows x86.
- Собирают пакеты для кучи дистрибутивов, а не только tar.gz.
- Их сборки проходят TCK.
- За ними стоит большая и серьёзная компания, которая давно уже делает свою JRE и ей можно доверять сборку JDK. Они в этом понимают. Adopt это непонятно кто.
Zulu — проприетарщина голимая, сорцы какбы GPL и как бы есть, а на деле публичный доступ к их форкнутым репозиториям OpenJDK закрыт.
Так они же просто OpenJDK собирают. Какие ещё сорцы? Думаешь, у них какие-то нетривиальные патчи есть?
We take the OpenJDK source and build it so no magic sauce (if you’ll excuse the pun) involved.
Так они же просто OpenJDK собирают.
Именно те, из которых они собирают версию, которую выкладывают.
Думаешь, у них какие-то нетривиальные патчи есть?
Пример ну совсем нетривиального патча — поддержка Java Flight Recorder бекпортированная ими в Zulu-8 из OpenJDK-11. В OpenJDK-8 ее нет до сих пор (хотя уже полгода обещают доделать).
Ну ладно, это, конечно, минус. Лично для меня незначительный, мне в JRE до сих пор копаться не приходилось. Хотя раз GPL, при необходимости исходники получить можно. Тут предлагают написать на azul_openjdk@azulsystems.com видимо это к чему-нибудь приведёт. Так что тут скорей могут быть претензии к тому, что процесс разработки закрытый, а не сам продукт. Но это дело такое, даже RHEL так разрабатывается, а что может быть линуксовей.
Нужно использовать JDK от JetBrains. Иначе будут проблемы.
OpenJDK принадлежит тому же Oracle
В стародавние времена проблемы были. В смысле, сама IDEA глючила, если её запускать из-под OpenJDK, и одно время его детектила и показывала MessageBox, мол под OpenJDK никаких гарантий.
А сейчас она запускается на JRE, идущем в составе архива (если тупо скачать с сайта jetbrains и распаковать; что там дистрибьюторы химичат, я хз). И причём этот идущий в составе архива JRE – OpenJDK-шный:
Ну а какой JDK ты задашь для компиляции собственного проекта, ей вообще ортогонально.
Источник
Так много JDK… Какой использовать и чем это грозит?
От переводчика: Решение перевести эту статью пришло не само собой — скорее это вынужденная мера :). К нам, как к вендорам фреймворка CUBA, обращаются с этим вопросом с завидной регулярностью. Безусловно, для нас это тоже крайне важная тема, и в ответ на последние изменения мы подняли тестовые стенды как на Oracle JDK, так и на Liberica JDK — эта мера на данный момент ограждает наших пользователей от непредвиденных лицензионных трат. Однако, эта тема еще не закрыта, и мы продолжаем внимательно следить за развитием событий, и, кто знает, возможно нам придется добавлять стенды для еще каких сборок JDK уже в следующем году.
Статья под катом подкупает тем, что она лаконично описывает проблематику и наиболее популярные JDK с их особенностями.
Недавно Oracle заявили, что эволюция Java кардинально изменится благодаря переходу на «Release Train» — новому подходу к выкатыванию версий. Это изменение также повлекло за собой перемены в плане поддержки версий, которая теперь будет осуществляться не для всех, а только для LTS версий. Сообщество Java чемпионов разъяснило вводимые новшества, детальный документ доступен в сети.
Даже с учетом этих новостей остаются вопросы: какие билды JDK сейчас доступны? Будут ли они бесплатными или коммерческими? Прежде чем ответить на этот вопрос, важно понять, какие требования предъявляются к JDK как продукту. Фактически, есть только один основной исходный код JDK. Он находится здесь. Кто угодно может использовать исходный код для построения собственной сборки и размещения ее где-то в сети. Однако есть отдельная процедура сертификации, которая должна быть пройдена, чтобы сборка JDK считалась валидной. Сертификация осуществляется Java Community Process (JCP), который предоставляет Technology Compatibility Kit (TCK). Если какая-либо организация создает новую сборку OpenJDK, которая отвечает TCK, она считается «совместимой с Java SE».
Имейте в виду, что сборка не может называться «Java SE», если компания, осуществившая сборку, не приобрела коммерческую лицензию от Oracle. Например, сборки AdoptOpenJDK, которые проходят TCK, не являются «Java SE», но являются «Java SE compliant». Также нужно учитывать, что сертификация сейчас основывается “на честном слове” — результаты не отсылаются в JCP/Oracle для верификации и являются закрытой информацией. Короче говоря, каждый вендор, взявший исходники OpenJDK и собравший версию, порождает еще одну отдельную сборку JDK.
Итак, без лишних слов, рекомендуем ознакомиться со следующими готовыми к использованию JDK:
Oracle JDK
Это главный поставщик Java 11 (релиз уже состоялся). Это коммерческая версия с платной поддержкой. Ее можно бесплатно скачивать и использовать только непосредственно для разработки. Использовать ее в продакшене, не заплатив Oracle, нельзя (так что для многих не интересующихся вопросами лицензирования это ловушка). Oracle планирует предоставлять платную поддержку до 2026 года и далее. В отличие от того, как было раньше, сборка Oracle JDK ничем не “лучше” OpenJDK (по стольку по скольку оба находятся на одном и том же уровне security patch level).
OpenJDK Build от Oracle
Существует бесплатные не-брендовые версии OpenJDK, распространяемые по лицензии GPL с Classpath Extension (подходит для коммерческого применения). Эти версии сборки доступны только в течение 6 месяцев после релиза. Для Java 11 ожидается выход версии Java 11.0.0 и два security -патча, 11.0.1 и 11.0.2. Чтобы продолжать использование версии OpenJDK и его патчей от Oracle, необходимо перейти на Java 12 не позднее, чем через месяц после запуска. Обратите внимание, что порядок обеспечения security-патчей отличается от порядка предоставления поддержки, которая включает в себя оплату обработки отчетов об ошибках.
AdoptOpenJDK
Это тоже бесплатные и не-брендовые сборки OpenJDK, распространяемые по лицензии GPL с Classpath Extension, только в отличие от билдов OpenJDK от Oracle эти версии сборки будут действовать в течение более длительного времени для основных версий, таких как Java 11. Версии Java 11 будут выпускаться в течение 4 лет через год после следующего основного релиза. AdoptOpenJDK ориентируется на сообщество. Пока другие команды создают и публикуют исправления безопасности для исходного репозитория OpenJDK, они будут выпускать билды. И IBM, и Red Hat обозначили, что намерены выпускать такие патчи.
AdoptOpenJDK OpenJ9
Вдобавок к стандартным сборкам OpenJDK AdoptOpenJDK будет также предоставлять версии с OpenJ9 вместо HotSpot. OpenJ9 изначально была JVM от IBM, но сейчас OpenJ9 имеет открытый исходный код. И, кстати говоря, эта опция наиболее достойная изучения.
Red Hat OpenJDK
Red Hat предоставляет версии сборки OpenJDK на Red Hat Enterprise Linux (RHEL), являющемся коммерческим продуктом с платной поддержкой. Red Hat очень неплохо справляются с исправлениями безопасности в OpenJDK. В прошлом Red Hat отвечали за security-апдейты Java 6 и 7. Сборка от Red Hat более интегрирована с операционной системой, так что ее нельзя назвать типичным билдом OpenJDK (отсутствует JDK конечного пользователя).
Azul Zulu
Zulu — брендированная версия OpenJDK с платной коммерческой поддержкой. К тому же, хотя Azul предоставляет некоторые элементы Zulu бесплатно в рамках «Zulu Community», они не несут никаких особых обязательств по доступности этих сборок. У Azul довольно масштабный план по поддержке Zulu, включающий поддержку Java 9, 13 и 15, в отличие от других поставщиков.
Amazon Corretto
Это новейшая из всех описанных опций. Corretto — бесплатная версия сборки OpenJDK с долгосрочной поддержкой, проходящая TCK. Она распространяется по стандартным условиям лицензирования всех версий OpenJDK: GPL + CE. Amazon создаст собственные патчи и запустят Corretto на AWS, так что он будет использоваться довольно активно (и уже добавлен в некоторые продукты). Поддержка Java 8 планируется по меньшей мере до июня 2023.
В процессе преобразования исходного OpenJDK в различные версии сборки производитель может добавлять различные утилиты или брендировать продукт, если это не препятствует сертификации (TCK). Например, нельзя добавить новый public-метод в API или новые языковые ресурсы.
Есть и другие реализации JDK, такие как IBM и SAPMachine. Однако эти версии сборки не так часто используются, поэтому они не упомянуты в этой статье. Более подробную информацию можно найти здесь и здесь.
Заключение
Лично я особой проблемы в наличие нескольких версий JDK не вижу, так как всем им нужно проходить сертификацию (TCK). Чем действительно стоит обеспокоиться — это использование одной из проприетарных JDK и бесплатной версии сборки от Oracle, во избежание головной боли в будущем. Если вы используете только базовые функции (например, ваш бизнес не особо зависит от секьюрити-апдейтов), вам больше подойдут сборки OpenJDK от Oracle (НЕ OracleJDK), т.к. они постоянно обновляются (в течение 6 месяцев после релиза), и вы можете использовать JDK в продакшене без особых проблем. Если в вашем бизнесе задействованы облачные сервисы (или с AWS), хорошим выбором будет AWS Corretto, который уже пригоден к использованию на Amazon Linux и Docker.
Источник