У меня на федоре с OpenJDK были адовые баги в Preview, который показывает верстку. С Oracle JDK такой проблемы не было, ну иногда еще «ехал» сам UI, особенно при открытии окна дебаггера.
Это про какую версию речь? Помнится, проблемы совместимости я видел в 1.6, в более поздних версиях OpenJDK - вообще эталонная реализация. Ну а так то да, жава - такая жаба.
Плюсую насчёт эталонной реализации — помнится, то ли Куксенко, то ли другой сотрудник Oracle на одной из конференций говорил, что Oracle JDK — это, по большому счёту, OpenJDK, собранный Oracle.
Им просто лениво тестировать, вот они и вставляют дисклеймеры вместо этого. Oracle JDK == OpenJDK + WebStart и коммерческие фичи (остальные отличия косметические).
там есть проприетарные компоненты, которые идут мимо майнлайна, например растеризатор для anti-aliased 2д графики (с закрытым исходником в oracle jdk - Ductus, в openjdk8 - Pisces, в openjdk9 - Marlin). Или например Rhino нету по-умолчанию (ScriptEngineManager.getEngineByName(«JavaScript») вернет null в OpenJDK), хотя можно самому его туда засунуть и пересобрать. Java Plugin, WebStart. Шрифты, фиксы на OSX. Еще что-то наверное. Не то чтобы оно сейчас было сильно другим, но разница есть.
I recently ran into problems with code using URLConnection to poll a data source over HTTP. Worked fine with Oracle JDK 7 & 8, but would intermittently lose cookie headers with OpenJDK 7 & 8. I was really hoping that something like HttpUrlConnection would be uniform across both now... In the end switching to Apache HttpClient saved me from having to install Oracle JDK. Another instance: OpenJDK 8 doesn't support TLS_ECDHE cipher suites, though it does support TLS_DHE. It's a bummer, but I'll sacrifice some CPU to keep my EC2 deployments simpler
Потому что все белые люди, которые делают что-то с OpenJDK - контрибутят это обратно. И не потому что они такие добрые, а потому что поддерживать самим такие «полуфорки» накладно.
растеризатор для anti-aliased 2д графики (с закрытым исходником в oracle jdk - Ductus, в openjdk8 - Pisces, в openjdk9 - Marlin)
Ога, есть какая-то закрытая приблуда у Оракла, и для шрифтов еще что-то свое юзают, вместо FreeType (который используют все остальные включая Apple).
Или например Rhino нету по-умолчанию (ScriptEngineManager.getEngineByName(«JavaScript») вернет null в OpenJDK), хотя можно самому его туда засунуть и пересобрать.
Лол, Nashorn же есть из коробки в OpenJDK 8, и «JavaScript» engine в нем также из коробки. В OpenJDK 7 в Fedora/CentOS пакуют Rhino. Еще его можно и без пересборки в ванильной 7 использовать (немного настроек надо подложить только, чтобы javax.scripting его увидел).
Java Plugin, WebStart.
Не являются частью OpenJDK, не были заопенсорсены. Для любителей некрофилии в браузере есть IcedTea-Web. Для любителей WebStart (который умирать не собирается) - есть Netx (который также в IcedTea-Web идет), pure Java открытая реализация протокола WebStart, работает на всех платформах.
Шрифты,
Системные в основном юзаются, а вообще можно любые подложить - fontconfig же
фиксы на OSX.
Список (хотя бы двух не-апстрим фиксов для JDK 8) в студию, или не было.
Это не OpenJDK, в апстриме все EC Crypto из коробки работает. Это Fedora головного мозга у мейнтейнеров линуксовых.
Elliptic Curve библиотека, что в исходниках OpenJDK приложена, оказалась «недостаточно свободной» для Федоры, и пока они делали «свою реализацию, только лудше», Fedora/CentOS (и остальные дистры, которые от них патченый OpenJDK юзают) жили без EC. Это пофиксили используя NSS для EC Crypto в CentOS 6.8 (также будет в 7.3) и в последних Федорах.
Во-первых это ССЗБ, это суровое легаси, замену по-моему еще для jdk7 пилили, но в 8 она так и не вошла. Может в 9 будет. Юзайте Apache HttpComponents. Во-вторых, не верю что на тех же минорных версиях OpenJDK 8 и OracleJDK 8 эта штука по разному работала. 7 Оракл не поддреживает и бекпортеры могли накосячить. Но в 8 - тот же самый код от оракла 1 в 1.
Использую уже давно сборку OpenJDK от Azul Systems — Azul Zulu. Они нормально собирают и проблем с ней не было, а то криворукие мейнтейнеры линуксовых дистров вечно соберут через жопу. Даже репы с deb и rpm есть, так что с обновлениями тоже никаких проблем. И docker-контейнеры они тоже предоставляют. Оракл со своими лицензиями пусть проследует мимо.
Да, формально - не проприетарна - можно попросить у них исходники махая распечатанной GPL - и они возможно их даже дадут (а если поддержку купить - тогда точно дадут).
certified build of OpenJDK that is fully compliant with the Java SE standard
И в RHEL/CentOS тоже certified/compliant, их иначе заказчики побьют, которые поддержку на OpenJDK для JBoss покупают. Даже у бубунты есть доступ к TCK и его там даже наверное иногда пускают.
Очнись, это просто билд OpenJDK с опциональной поддержкой. Парни берут http://hg.openjdk.java.net/jdk8 и собирают у себя. К Zulu можно еще поставить Commercial Compatibility Kit и/или Cryptography Extension Kit. Вот они как раз не заявлены как опенсорсю
The Commercial Compatibility Kit (CCK) for Zulu® contains additional functionality that is not included in in the OpenJDK source, but which will help ensure compatibility in applications that take advantage of specific additional features that Oracle bundles into HotSpot. The CCK is free and can be added easily to Zulu as part of your normal upgrade or update process.
The Cryptography Extension Kit (CEK) for Zulu® contains additional functionality that is not included in the OpenJDK source, but which will help ensure compatibility for applications requiring higher than 128-bit key lengths for encryption. It is the Zulu equivalent of the Java Cryptography Extension, or JCE, distribution for the Oracle JDK. The CEK is free and can be added easily to Zulu as part of your normal upgrade or update process.
В Азуле эти сорцы немного патчат, и того, что именно они собирают в открытом доступе нет. Но с 8 патчи скорее всего минимальны - Оракл пока 8 поддерживает.
Гораздо интереснее что парни берут для сборки OpenJDK 7? И нет, вот эта ссылка неправильная - http://hg.openjdk.java.net/jdk7u/jdk7u/ . Оттуда виндовую и особенно маковскую версии не собрать.
Certain portions of this software are based on source code from OpenJDK (http://openjdk.java.net/) and licensed under the GNU General Public License version 2 (GPLv2) with the Classpath Exception (http:// openjdk.java.net/legal/gplv2+ce.html). For a period of three years from the date of your receipt of this software, Azul will provide upon request, a complete machine readable copy of the source code for such portions based on OpenJDK on a medium customarily used for software interchange for a charge no more than the cost of physically performing source distribution.
Please email azul_openjdk@azulsystems.com for further information.
Публичного репозитория с исходниками у них нет, потому что они собирают из снапшотов офицального репозитория OpenJDK.
Finally, there is no public Zulu source repository, because the source is fetched from OpenJDK. The OpenJDK project source repos are therefore the proper place to navigate, study, review, and contribute source fixes and changes. Zulu source snapshots reflect the fetch from the OpenJDK codeline that fed the particular Zulu build. They are not forks of the master branches.