Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Средство запуска команд Azure для Java (jaz) — это упрощенная программа, которая упрощает запуск приложений в Azure разработчикам Java.
Благодаря интеллектуальному применению параметров виртуальной машины 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 Functions
- Azure Red Hat OpenShift (ARO)
- Виртуальные машины Azure
- Azure DevOps
- GitHub Codespaces
- Действия GitHub
Общедоступная предварительная версия
Средство запуска команд 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 Build 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
Для виртуальных машин и других сред Azure Linux можно установить средство с помощью диспетчера tdnf пакетов. Установите пакет со следующей jaz командой:
sudo tdnf install jaz
Другие дистрибутивы Linux
Если вы уже настроили репозиторий программного обеспечения Linux для продуктов Майкрософт, выполните соответствующую команду диспетчера пакетов для дистрибутива jaz , чтобы установить пакет.
Например, в дистрибутивах на основе Ubuntu или Debian выполните следующую команду:
sudo apt-get install jaz
Если у вас нет репозитория программного обеспечения Linux для продуктов Майкрософт, следуйте инструкциям для дистрибутива 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
Поддерживаемые версии JVM
Средство запуска команд Azure для Java требует установки JDK на основе OpenJDK (версии 8 или более поздней) в системе. Он был протестирован с помощью:
- Eclipse Temurin OpenJDK 8 с HotSpot JVM
- Microsoft Build of OpenJDK 11, 17, 21 и 25.
Это важно
Для запуска команд Azure для Java требуется полная установка JDK. Он не полностью протестирован с установками только JRE или пользовательскими средами выполнения на основе jlink. Дополнительные сведения см. в статье "Почему она не работает с средами выполнения JRE или jlink?".
Конфигурация
Команда jaz не использует аргументы командной строки для собственной конфигурации.
Вместо этого по умолчанию он передает все аргументы непосредственно команде java .
Чтобы убедиться, что jaz конфигурация не вмешивается в аргументы приложения, jaz принимает конфигурацию только через переменные окружения.
Команда jaz может быть настроена с помощью следующих переменных среды:
Использование переменных среды, а не аргументов командной строки также упрощает настройку jaz в некоторых случаях.
При развертывании контейнерного приложения иногда проще задать переменные среды, чем изменять скрипты запуска, и экспериментирование с JAZ_IGNORE_USER_TUNING и JAZ_BYPASS может быть полезным при оценке jaz.
Дорожная карта
- ⚙️ Профили конфигурации JVM
- 📦 Поддержка AppCDS
- 🔄 Непрерывная настройка
- 📊 Телеметрия
- 📦 Поддержка Leyden
Журнал изменений
Общедоступная предварительная версия 1: 0.0.0-preview+2025118.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 для Java.
Телеметрия
Средство запуска команд Azure для Java собирает данные об использовании и отправляет его в корпорацию Майкрософт, чтобы улучшить наши продукты и службы. Дополнительные сведения см. в нашем заявлении о конфиденциальности.