Установка JDK
Для создания приложений Java в Azure вы можете использовать любой JDK. Эта статья поможет вам понять основы сборки Azul Zulu OpenJDK для Azure.
Обновление от 30 июня 2021 г. Zulu для Azure больше не будет обновляться и поддерживаться начиная с 1 января 2022 г. Службы Azure переходят на использование Microsoft Build OpenJDK для JDK 11 и Eclipse Temurin для JDK 8. Дополнительные сведения см. в записи блога End of Updates, Support and Availability of the Zulu for Azure builds of OpenJDK (Завершение обновлений, поддержки и доступности сборок Zulu OpenJDK для Azure).
Сборки Azul Zulu — это бесплатный, мультиплатформенный и полностью готовый к рабочей среде дистрибутив OpenJDK. Вы можете использовать их для разработки приложений Java для Azure и Azure Stack. Они содержат все компоненты для сборки и запуска приложений Java SE.
Следующие инструкции предназначены для 64-разрядных версий JDK для Java 8 и 11.
Windows и macOS
Скачивание и установка сборки Azul Zulu OpenJDK для Windows
Перейдите по одному из следующих URL-адресов и скачайте последнюю версию 64-разрядного пакета Azul Zulu JDK 8 или 11 в формате MSI.
Перейдите в каталог и дважды щелкните скачанный MSI-файл, чтобы начать установку.
Скачивание и установка сборки Azul Zulu OpenJDK для Mac
Перейдите по одному из следующих URL-адресов и скачайте последнюю версию 64-разрядного пакета Azul Zulu JDK 8 или 11 в формате DMG.
Запустите Finder, перейдите в каталог скачивания и дважды щелкните DMG-файл.
Подтверждение установки
Linux
Сборки Azul Zulu OpenJDK также предоставляются в формате пакетов DEB, RPM и архива TAR.GZ.
Дополнительные сведения о Linux см. на странице Сборки Azul Zulu OpenJDK.
Подробнее
Дополнительные сведения о подготовке, установке пакетов Azul Zulu OpenJDK и управлении ими см. в официальных документах Zulu.
Download Azul Zulu Builds of OpenJDK
Level up with the Azul Platform.
Looking for a supported JDK?
The Java platform for the modern cloud enterprise starts with Azul Platform Core, the world’s #1 supported build of OpenJDK. Backed by the industry’s best support and maintenance offering, Azul Platform Core reduces customers’ Java support and licensing costs by as much as 90%.
Download Azul Platform Prime
Azul Platform Prime extends Core, adding unique Azul innovations to improve the runtime characteristics of Java workloads. Azul Platform Prime delivers added performance, scale, consistency, and efficiency to Java applications, and can reduce cloud infrastructure costs by as much as 50%.
Customer-only downloads?
Already an Azul customer? You can jump straight to Azul’s FTP site where you’ll find all the software and associated documents and tools you need to get going.
Package Managers
Azul Zulu
Linux Repos
Azul Zulu
on Docker Hub
Azul Zulu
Discovery API
Platform Components
Azul Mission Control
Analyze and profile your systems during development and production.
jHiccup
Identify whether application pauses are caused by the Java VM or the operating system.
ZIUpdater Time Zone Tool
Apply time zone definition updates to deployed JDKs.
Iced Tea-Web
IcedTea-Web is an open source implementation of Java Web Start.
Azul Inspector
Get insight into the system and app settings that affect performance.
Azul Commercial Compatibility Kit
The Azul Commercial Compatibility Kit (CCK) is designed to ensure compatibility of Azul Zulu (Azul’s 100% open source, certified builds of OpenJDK) and Oracle’s proprietary Java SE 6-8
jRT Socket Response Tool
Accurately track end-user response time in live apps.
Download Azul Zulu Builds of OpenJDK
For PPC32-HF, PPC32-SPE and MIPS32 builds Contact Azul Sales
By downloading or choosing to update products from this page, you agree to the Terms of Use.
Installation on Windows Using the Zulu ZIP File
Before you install Zulu, complete the tasks in the section, Preparing the Zulu Installation Platform.
Extract the content of the archive to a folder. This folder is your Azul Zulu installation folder.
To verify that the package was extracted correctly, run the following command from a command prompt.
You should see output similar to the following:
To learn more about installing Azul Zulu on Windows, see Install Azul Zulu on Windows.
Installation on Windows Using the Zulu TAR.GZ File
Before you install Zulu, complete the tasks in the section, Preparing the Zulu Installation Platform.
Extract the content of the archive to a folder. This folder is your Azul Zulu installation folder.
To verify that the package was extracted correctly, run the following command from a command prompt.
You should see output similar to the following:
To learn more about installing Azul Zulu on Windows, see Install Azul Zulu on Windows.
Installation on Windows Using the Zulu MSI File
Before you install Zulu, complete the tasks in the section, Preparing the Zulu Installation Platform.
To learn more about installing Azul Zulu MSI packages, see Install Azul Zulu on Windows
Installation on Linux Using the TAR.GZ File
Before you install Zulu, complete the tasks in the section, Preparing the Zulu Installation Platform.
For RHEL, CentOS, Amazon Linux, SLES/OpenSUSE, Fedora, Scientific Linux, Oracle Linux, Debian, or Ubuntu
Extract the package content into a directory:
To verify that you have correctly extracted the package, run the java command:
To learn more about installing Azul Zulu on RPM-based Linux, see:
Installation on Alpine Linux Using an APK Repository
The Zulu product package is a set of installation packages.
| Zulu Package Name | Description | Dependencies |
|---|---|---|
| zuluX | zuluX-jdk alias | None |
| zuluX-jre-headless | Headless Java Runtime (without GUI support) | None |
| zuluX-jre | Headful Java Runtime (with GUI support) | zuluX-jre-headless |
| zuluX-jdk-headless | Headless Java Development Kit (without GUI support) | zuluX-jre-headless |
| zuluX-jdk-headless | Headless Java Development Kit (without GUI support) | zuluX-jre-headless |
| zuluX-jdk | Headful Java Development Kit (with GUI support) | zuluX-jdk-headless zuluX-jre |
| zuluX-src | Java Development Kit public source snapshot | None |
| zuluX-doc | Java Development Kit documentation (man pages) | None |
| zuluX-demo | Java Development Kit demos and examples | zuluX-jdk |
Where X is the Zulu version: 13, 11, and 8.
Log in as root or use sudo.
Install a Zulu package.
Example
To install zulu8-jre-headless, run:
$ apk add zulu8-jre-headless
To install zulu8-jdk, run:
See also Azul Repository Tips in Troubleshooting.
Installation on Linux Using RPM, DEB or APT Packaging
Before you install Zulu, complete the tasks in the section, Preparing the Zulu Installation Platform.
Log in to your root account or use sudo to run the command listed below.
Log in as root or use sudo.
Install the downloaded RPM package as follows:
For RHEL or Oracle Linux:
$ sudo zypper install
To learn more about installing Azul Zulu RPM packages, see Install Azul Zulu on RPM-based Linux.
Installation on Linux Using RPM, DEB or APT Packaging
Before you install Zulu, complete the tasks in the section, Preparing the Zulu Installation Platform.
Log in to your root account or use sudo to run the command listed below.
Install the downloaded package as follows:
The command may ask you to confirm that you want to install the package dependencies.
To learn more about installing Azul Zulu DEB packages, see Install Azul Zulu on Debian or Ubuntu.
Installation on macOS Using the Zulu ZIP File
Before you install Zulu, complete the tasks in the section, Preparing the Zulu Installation Platform.
Download the installation package to a reasonable location on your system. For example:
Expand the downloaded .zip file. Choose a method.
From a Finder window, double-click the .zip file.
From a terminal command line.
All Zulu files for the OpenJDK are expanded into appropriate folders relative to the / subfolder. For example
Installation on macOS Using a DMG Package through the GUI
Before you install Zulu, complete the tasks in the section, Preparing the Zulu Installation Platform.
Double-click the downloaded DMG file and follow the wizard instructions.
To learn more about installing Azul Zulu DMG packages, see Install Azul Zulu on macOS.
Installation on macOS Using the Zulu ZIP File
Before you install Zulu, complete the tasks in the section, Preparing the Zulu Installation Platform.
Launch Finder and navigate to the download folder.
Double click the file to unpack it. If you download the file using Safari, it may automatically unpack the file.
Alternatively, you can use the command below to unpack the file:
The folder where you unpacked the archive is your Azul Zulu installation folder.
To verify your Azul Zulu installation, run the following command in a terminal window:
To learn more about installing Azul Zulu on macOS, see Install Azul Zulu on macOS.
Installation on macOS Using the Zulu TAR.GZ File
Before you install Zulu, complete the tasks in the section, Preparing the Zulu Installation Platform.
Launch Finder and navigate to the download folder.
Double click the file to unpack it. If you download the file using Safari, it may automatically unpack the file.
Alternatively, you can use the command below to unpack the file:
The folder where you unpacked the archive is your Azul Zulu installation folder.
To verify your Azul Zulu installation, run the following command in a terminal window:
To learn more about installing Azul Zulu on macOS, see Install Azul Zulu on macOS.
Installation on Solaris Using the Zulu ZIP File
Before you install Zulu, complete the tasks in the section, Preparing the Zulu Installation Platform.
Extract the downloaded .zip file into a folder.
The command creates a folder named after the package but without the .zip extension. This is your Azul Zulu installation folder.
To verify that the package was extracted correctly, run
To learn more about installing Azul Zulu on Solaris, see Install Azul Zulu on Solaris.
Azul Zulu — JVM для облака или просто порт OpenJDK на Windows?
На конференции JavaOne 2013, которая недавно завершилась в Сан-Франциско, компании Microsoft Open Technologies и Azul Systems анонсировали Zulu — порт OpenJDK для облачной платформы Windows Azure. Учитывая, что три месяца назад Oracle и Microsoft объявили о партнёрстве в области облачных технологий, многие ожидали, что именно Oracle выпустит JVM для облачной платформы от Microsoft. Однако такую JVM выпустила Azul Systems, многолетний лицензиат Java SE, известный своими высокопроизводительными решениями для серваков с большими хипами.
В первой части статьи мы попробуем разобраться, кто такой этот Zulu и что нам от него ожидать. Это только начало пути или уже готовое решение? Во второй части мы перейдём к распаковке Zulu Technology Preview и, в качестве побочного эффекта, посмотрим, чем же Oracle так нашпиговала свою JDK, что та весит в полтора раза больше Zulu.
Java: Oracle и IBM? Azul и Microsoft!
Кто такие Azul
Вообще Azul Systems известна своими высокопроизводительными Java-решениями. Начали они с того, что сделали свою Java на… железе. Ну точнее, оно линуксовое, просто все вычисления выполняются на отдельной плате (на ум сразу приходит NVidia CUDA). Решение называется Azul Vega. Последние версии содержат сотни вычислительных ядер и сотни гигабайт RAM.
@TheShade как-то рассказывал байку времён своей работы в Intel. Мол, брали они стандартную бенчмарку, в которой Sun’овская Java давала 4000 попугаев, начинали оптимизировать свою имплементацию и после долгих трудов им удавалось выжать 5000 попугаев. «Ура!», кричали они, и публиковали статью о том, как они уделали сановскую имплементацию аж на 25%. После этого приходили парни из Azul, брали бенчмарку и получали на своей Vega не 4000 и не 5000 попугаев, а миллион. Занавес.
Пресс-релиз от Azul
Что же официально говорит нам Azul в своём пресс-релизе?
Во-первых, говорится про Windows Azure. Во-вторых, встречается модное нынче «community-driven». В третьих, говорится про полную совместимость со спецификацией Java SE 7. Значит, эти ребята не сильно разломали OpenJDK, что радует 🙂 Но это всё и так понятно.
Из интересного: Azul будет активно заливать в OpenJDK патчи и багфиксы. То есть, не только пользоваться чужим, но и вносить свой вклад. Это крутое заявление, но не новое. Любой нормальный лицензиат Java так делает хотя бы для того, чтобы избавиться от головной боли.
Представим себе, что у нас есть хитрый лицензиат Вася, который нашёл баг в OpenJDK, пофиксил его в своём форке, но не сказал остальным. Ту бишь, не за бэкпортил. И сидит такой довольный собой. Допустим, через месяц ту же проблему нашёл честный Петя, пофиксил её своим способом и залил в OpenJDK. В итоге при первой же синхронизации с обновлённым OpenJDK у Васи случится
батхёртконфликт в исходниках, с которым нужно будет разбираться. А это то ещё удовольствие.
Глазами Microsoft
В Редмонде тоже не дремлют. Чувак из Microsoft Open Technologies пишет на MSDN, что фишка в том, что теперь последние версии OpenJDK 7 для Windows теперь доступна в бинарном виде благодаря Zulu, а в дальнейшем цитирует пресс-релиз Azul.
Пресса
Joab Jackson на ComputerWorld отмечает очевидное: Azul будет дефолтной платформой в Azure для тех, кому Java в Azure нужна как сервис. Кроме того, он упоминает Oracle Cloud, в котором Oracle почему-то не предоставяет Java SE как сервис, а предоставляет как сервис более высокоуровневое решение — Java EE. Типа, деплойте-ка своё JavaEE-приложение в Oracle Cloud, а дальше мы сами разберёмся, как его эффективно выполнять.
Звучит разумно с точки зрения облачной модели c одной стороны и как забивание болта на Java SE с другой. Нужна ли бизнесу Java SE без Java EE? Стоит ли ради неё заморачиваться? Судя по статье, Microsoft отвечает на этот вопрос скорее утвердительно, а Oracle скорее отрицательно. Следует лишь заметить напоследок, что это статья на ComputerWorld, а не официальный релиз Oracle или Microsoft.
Распаковка
хмм, ну ок. Кажется, мы получили ответ на первый вопрос. На данный момент, на осень 2013 года, Azul Zulu — это только начало проекта по облачной Java.
Итак, как результат: под капотом у нас применение разных компиляторов под винду (или, по крайней мере, разных настроек одного компилятора) и несколько технологий от Oracle, нужных не всем и раздувающих дистрибутив. Именно для того, чтобы побороть последнюю проблему, в Java SE 8 реализованы Compact Profiles. Я понимаю, что сравнивать две софтины по набору файлов — это полный идиотизм, и нужно копать дальше и запускать всё это, меряться попугаями и т.п. Но это материал для технической статьи, а не для обзорной. Учитывая, опять-таки, что Zulu сейчас на начальной стадии, можно догадаться, что разница будет минимальна.
Давайте её запустим!
Мда, она ещё и Headless. Это значит, что эти парни выключили по дефолту в своей OpenJDK AWT и Swing Zulu предназначена только для серверов. IntelliJ IDEA вы на ней просто так не запустите. В каментах подсказывают, что это просто по тому, что java.awt.headless=true включена по дефолту 🙂 Вот так заработало:
Заключение
Для меня по-прежнему остаётся загадкой, в чём же специфика Zulu. На ум приходит только какое-то потенциальное тесное сотрудничество Azul Systems и Microsoft в плане компиляции и оптимизации нативного кода OpenJDK под винду. Может быть, какие-нибудь навеянные совместными усилиями оптимизации в JIT. Может быть, какие-то куски из Zing, который является продуктом для Linux, будут портированы (или уже портированы) в Zulu.
Почему же Zulu позиционируется именно как решение для Windows Azure, а не просто как сборка OpenJDK под винду. Что это? Маркетинг? Ну ок. А что в Zulu технически нового? Какова специфика Zulu? Хочется верить, что это действительно выльется во что-то интересное технически и даст Java-миру что-то принципиально новое. Пока что я вижу только порт OpenJDK на Windows x64. Повторюсь, видимо, проект только в самом начале пути.
Порассуждать на эти и другие темы я приглашаю вас на конференции Joker 2013, которая пройдёт в Питере уже через две недели. Среди прочих, в программе конференции будет доклад от CTO Azul Systems Гила Тини про сборку мусора и доклад от Александра Белоцерковского из Microsoft как раз про Java в Windows Azure. И именно им двоим лично я и хочу задать озвученные выше вопросы.
Так много 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
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.




