Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Средство запуска команд Azure для Java (jaz) — это упрощенная программа, которая упрощает запуск приложений Java разработчиками Azure.
Благодаря интеллектуальному применению параметров Java виртуальных машин (JVM), адаптированных для облачных сред, средство уменьшает затраты на конфигурацию и улучшает использование ресурсов из коробки с более высоким потенциалом для повышения производительности.
Это средство идеально подходит для разработчиков, которые:
- Хотите улучшить настройки JVM по умолчанию без необходимости глубокого изучения руководств по настройке.
- Разработка и развертывание облачных собственных микрослужб с помощью платформ, таких как Spring Boot, Quarkus или Micronaut.
- Предпочитайте рабочие процессы на основе контейнеров, такие как Kubernetes и OpenShift.
- Развертывание рабочих нагрузок Java на Контейнеры приложений Azure, Служба Azure Kubernetes, Azure Red Hat OpenShift или Виртуальные машины Azure.
Ключевые особенности
- 🛠 Автоматически настраивает флаги JVM для облачных развертываний.
-
🚀 Интерфейс plug-and-play. Просто добавьте внутрь вашего Dockerfile или скрипта запуска, заменив команду
javaнаjaz. - ☁️ Оптимизировано для сред Azure.
- 🔧 Настраиваемая с помощью переменных среды. Существует несколько способов безопасного развертывания изменений конфигурации.
Поддерживаемые среды
Средство запуска команд Azure для Java можно использовать везде, где доступен средство запуска Java в средах Linux. Она была проверена и протестирована на следующих платформах Azure и CI/CD:
- Служба Azure Kubernetes (AKS)
- Контейнеры приложений Azure
- Служба приложений Azure
- Функции Azure
- Azure Red Hat OpenShift (ARO)
- Виртуальные машины Azure
- Azure DevOps
- GitHub Codespaces
- GitHub Actions
Это важно
Средство запуска команд Azure для Java считывает сведения cgroup версии 1 и версии 2, чтобы определить доступные ресурсы и настроить JVM соответствующим образом.
Он проверяет файлы в пределах /sys/fs/cgroup , чтобы обнаружить ограничения памяти и другие ограничения ресурсов.
Если система cgroup не смонтирована в /sys/fs/cgroup, средство запуска команд Azure для Java может неправильно обнаруживать ограничения контейнеризации, что приводит к плохой производительности или даже к ошибкам, связанным с недостатком памяти.
Мы не выявили сценариев ни в одной из поддерживаемых сред, где это является проблемой, но возможно, что это ограничение может возникнуть в настраиваемых средах.
Дополнительные сведения см. в статье "Почему важна точка монтирования cgroup?".
Общедоступная предварительная версия
Средство запуска команд Azure для Java теперь доступно в общедоступной предварительной версии. Ознакомьтесь с объявлением общедоступной предварительной версии , чтобы ознакомиться с этим инструментом и его преимуществами.
Принцип работы
Средство запуска команд Azure для Java находится между командой запуска контейнера или виртуальной машины и JVM. При запуске средства он:
- Обнаруживает облачную среду (например, ограничения контейнеров и доступную память).
- Анализирует тип рабочей нагрузки и выбирает флаги настройки JVM, например:
- Размер кучи.
- Выбор и настройка сборщика мусора.
- Параметры ведения журнала и диагностики по мере необходимости.
- Запускает процесс Java, передавая флаги настройки и любые предоставленные пользователем аргументы.
- Незаметно передает stdout, stderr, stdin и сигналы операционной системы в и из процесса Java.
- Отслеживает процесс Java и передает код выхода при завершении.
Пример использования
Средство запуска команд Azure для Java является заменой команды java, не требующей изменений кода. Просто замените java на jaz в скриптах запуска — например, замените java -jar foo.jar на jaz -jar foo.jar.
Вместо настройки параметров JVM вручную:
JAVA_OPTS="-XX:... several JVM tuning flags"
java $JAVA_OPTS -jar myapp.jar
Используйте jaz в следующих случаях:
jaz -jar myapp.jar
Ваше приложение может автоматически воспользоваться следующими преимуществами:
- Боевые, проверенные временем настройки по умолчанию для облачно-нативных рабочих нагрузок и контейнеров.
- Сокращение объемов памяти в облаке.
- Улучшена производительность запуска и прогрева.
Установка
Средство запуска команд Azure для Java доступно как для x64, так и для Arm64 Linux. Поддерживаемые методы установки:
- Используйте образ контейнера с предустановленным инструментом.
- Установите на Azure Linux.
- Установите из репозитория программного обеспечения Linux для продуктов Microsoft.
Образы контейнеров
Средство включено в образы контейнеров для Microsoft Build of OpenJDK. Дополнительная настройка не требуется.
Например, следующий файл Dockerfile использует jaz для запуска приложения Java из файла jar:
# Use any Microsoft Build of OpenJDK base image
FROM mcr.microsoft.com/openjdk/jdk:25-ubuntu
# Add your application.jar
COPY application.jar /application.jar
# Use jaz to launch your Java application
CMD ["jaz", "-jar", "application.jar"]
Установка в Azure Linux
Для виртуальных машин и других сред Linux Azure можно установить средство с помощью диспетчера пакетов tdnf. Установите пакет со следующей jaz командой:
sudo tdnf install jaz
Другие дистрибутивы Linux
Если вы уже настроили репозиторий программного обеспечения Linux для продуктов Microsoft, выполните соответствующую команду диспетчера пакетов для дистрибутива, чтобы установить пакет jaz.
Например, в дистрибутивах на основе Ubuntu или Debian выполните следующую команду:
sudo apt-get install jaz
Если у вас не настроен репозиторий программного обеспечения Linux для продуктов Microsoft, следуйте инструкциям для вашего дистрибутива Linux.
Чтобы установить в Ubuntu, откройте терминал и выполните следующие команды:
wget "https://packages.microsoft.com/config/ubuntu/$(. /etc/os-release; echo $VERSION_ID)/packages-microsoft-prod.deb" -O packages-microsoft-prod.deb && \
sudo dpkg -i packages-microsoft-prod.deb
После добавления репозитория установите jaz , выполнив следующие команды:
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install jaz
Сертифицированные версии JDK
Средство запуска команд Azure для Java требует установки JDK на основе OpenJDK (версии 8 или более поздней) в системе.
Это важно
Средство запуска команд Azure для Java требует полной установки JDK. Он не полностью протестирован с установками только JRE или пользовательскими средами выполнения на основе jlink. Дополнительные сведения см. в статье "Почему она не работает с средами выполнения JRE или jlink?".
Azure Command Launcher for Java сертифицирован со следующими JDK, для которых предоставляется полный набор корректировок параметров и оптимизаций как для x64, так и для arm64:
- Eclipse Temurin OpenJDK 8 с HotSpot JVM
- Microsoft Build of OpenJDK 11, 17, 21 и 25
С другими JDK на основе OpenJDK инструмент делает всё возможное, чтобы запустить ваше приложение, но может не применять полный набор корректировок производительности или оптимизаций, специфичных для версии. Некоторые оптимизации также относятся к Microsoft Build of OpenJDK и не применяются к другим дистрибутивам.
Когда средство обнаруживает JDK, который не сертифицирован, он выводит следующее предупреждение в стандартную ошибку и продолжает запускать приложение:
jaz: WARNING: Detected a version of Java that has not been certified by jaz.
Для получения наилучших результатов используйте один из сертифицированных JDK, перечисленных ранее.
Конфигурация
Команда jaz не использует аргументы командной строки для собственной конфигурации.
Вместо этого по умолчанию он передает все аргументы непосредственно команде java .
Чтобы убедиться, что jaz конфигурация не вмешивается в аргументы приложения, jaz принимает конфигурацию только через переменные окружения.
Команда jaz может быть настроена с помощью следующих переменных среды:
Использование переменных среды, а не аргументов командной строки также упрощает настройку jaz в некоторых случаях.
При развертывании контейнерного приложения иногда проще задать переменные среды, чем изменять скрипты запуска, и экспериментирование с JAZ_IGNORE_USER_TUNING и JAZ_BYPASS может быть полезным при оценке jaz.
Дорожная карта
- ⚙️ Профили конфигурации JVM
- 📦 Поддержка AppCDS
- 🔄 Непрерывная настройка
- 📊 Телеметрия
- 📦 Поддержка Leyden
Журнал изменений
0.0.0-preview+20260421.1
- Обновления зависимостей.
0.0.0-preview+20260408.1
- Обновления зависимостей.
0.0.0-preview+20260403.2
- Обновления зависимостей.
0.0.0-preview+20260323.1
- Обновления зависимостей.
0.0.0-preview+20260223.1
- Обновления зависимостей.
0.0.0-preview+20260120.1
- Обновления зависимостей.
0.0.0-preview+20251211.7
- Обновления зависимостей.
- Другие исправления ошибок.
0.0.0-preview+20251205.1
- Исправления внутренних ошибок.
0.0.0-preview+20251126.1
- Добавьте Microsoft Build of OpenJDK 25 в список сертифицированных версий.
0.0.0-preview+20251120.1
- Обновления зависимостей.
0.0.0-preview+20251118.1
- Перейдите в общедоступную предварительную версию.
- Реализуйте пакеты RPM и DEB.
- Улучшайте корректировки сборщика мусора.
- Остановите создание неясных диагностических выходных данных, когда программа Java завершает работу с ненулевом кодом.
- Улучшение передачи сигналов ОС в процесс Java, например
SIGTERMиSIGINT.- Остановка контейнера с Java приложением теперь дает приложению время для корректного завершения работы.
- Удалите использование
PrintFlagsFinal, что улучшает совместимость с определенными приложениями Java.- Исправлены вызовы
System.console(), которые вызывают исключения. - Исправьте буферизацию потока stdout:
jazбольше не задерживает вывод ретранслятора, пока он не увидит новый символ строки.
- Исправлены вызовы
- Другие исправления ошибок и улучшения внутренней устойчивости.
Частная предварительная версия 2
- Исправления ошибок.
- Расширенная совместимость дистрибутивов Linux путем снижения требований к glibc.
-
jazтеперь обнаруживает наличие какой-либо настройки JVM вручную и в таком случае не применяет собственные корректировки. -
JAZ_IGNORE_USER_TUNING=1Игнорирует настройку JVM вручную, если она присутствует, и применяет собственные корректировки настройки jaz. - Исправлено
PrintFlagsFinalотображение выходных данных (если оно не запрашивается) при использованииjazс OpenJDK HotSpot JVM 8.
Частная предварительная версия 1
- Первоначальный релиз Azure Command Launcher для Java.
Телеметрия
средство запуска команд Azure для Java собирает данные об использовании и отправляет его в Microsoft, чтобы улучшить наши продукты и службы. Дополнительные сведения см. в нашем заявлении о конфиденциальности.