Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Inicializador de Comandos do Azure para Java (jaz) é um utilitário leve que simplifica como os desenvolvedores Java executam seus aplicativos no Azure.
Aplicando de forma inteligente as opções de JVM (Máquina Virtual Java) adaptadas para ambientes de nuvem, a ferramenta reduz a sobrecarga de configuração e melhora a utilização de recursos pronta para uso, com maior potencial de melhor desempenho.
Essa ferramenta é ideal para desenvolvedores que:
- Deseja melhores padrões de JVM sem se aprofundar em guias de configuração.
- Desenvolva e implante microsserviços nativos de nuvem com estruturas como Spring Boot, Quarkus ou Micronaut.
- Prefira fluxos de trabalho baseados em contêiner, como Kubernetes e OpenShift.
- Implante cargas de trabalho java em Aplicativos de Contêiner do Azure, Serviço de Kubernetes do Azure, Red Hat OpenShift do Azure ou Máquinas Virtuais do Azure.
Características principais
- 🛠 Ajusta automaticamente sinalizadores JVM para implantações nativas de nuvem.
-
🚀 Experiência plug-and-play. Basta colocar no seu Dockerfile ou script de inicialização, substituindo o comando
javaporjaz. - ☁️ Otimizado para ambientes do Azure.
- 🔧 Personalizável por meio de variáveis de ambiente. Há várias maneiras de implementar com segurança as alterações de configuração.
Ambientes com suporte
O Iniciador de Comandos do Azure para Java pode ser usado sempre que o inicializador Java estiver disponível em ambientes baseados em Linux. Ele foi validado e testado nas seguintes plataformas de CI/CD e Azure:
- AKS (Serviço de Kubernetes do Azure)
- Aplicativos de Contêiner do Azure
- Serviço de Aplicativo do Azure
- Azure Functions
- ARO (Red Hat OpenShift no Azure)
- Máquinas Virtuais do Azure
- Azure DevOps
- GitHub Codespaces
- GitHub Actions
Versão prévia pública
O Iniciador de Comandos do Azure para Java agora está disponível em versão prévia pública! Leia o comunicado de visualização pública para obter uma introdução a essa ferramenta e seus benefícios.
Como funciona
O Iniciador de Comandos do Azure para Java fica entre o comando de inicialização de contêiner ou máquina virtual e a JVM. Quando você inicia a ferramenta, ela:
- Detecta o ambiente de nuvem (por exemplo, limites de contêiner e memória disponível).
- Analisa o tipo de carga de trabalho e seleciona os sinalizadores de ajuste JVM mais adequados, como:
- Dimensionamento de heap.
- Seleção e ajuste do coletor de lixo.
- Configurações de registros e diagnóstico quando necessário.
- Inicia um processo Java, passando-lhe os sinalizadores de ajuste e quaisquer argumentos fornecidos pelo usuário.
- Retransmite invisivelmente sinais stdout, stderr, stdin e SO de e para o processo Java.
- Monitora o processo java e retransmite seu código de saída quando ele termina.
Exemplo de uso
O Iniciador de Comandos do Azure para Java é uma substituição compatível para o comando java, sem exigir nenhuma alteração de código. Basta substituir javajaz em seus scripts de inicialização , por exemplo, substituir java -jar foo.jar por jaz -jar foo.jar.
Em vez de ajustar manualmente suas opções de JVM:
JAVA_OPTS="-XX:... several JVM tuning flags"
java $JAVA_OPTS -jar myapp.jar
Use jaz:
jaz -jar myapp.jar
Seu aplicativo pode se beneficiar automaticamente de:
- Padrões amplamente testados para cargas de trabalho nativas da nuvem e em contêineres.
- Redução do desperdício de memória na nuvem.
- Melhor desempenho de inicialização e aquecimento.
Instalação
O Iniciador de Comandos do Azure para Java está disponível para x64 e arm64 Linux. Os métodos de instalação com suporte são:
- Use uma imagem de contêiner com a ferramenta pré-instalada.
- Instale no Azure Linux.
- Instale no Repositório de Software do Linux para Produtos da Microsoft.
Imagens de contêiner
A ferramenta está incluída nas imagens de contêiner do Microsoft Build do OpenJDK. Não é necessário mais nenhuma configuração.
Por exemplo, este Dockerfile usa jaz para executar um aplicativo Java de um jar arquivo:
# 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"]
Instalar no Linux do Azure
Instale o jaz pacote com o seguinte comando:
sudo tdnf install jaz
Instalar no Repositório de Software do Linux para Produtos da Microsoft
Se você já tiver configurado o Repositório de Software do Linux para Produtos da Microsoft, execute o comando do gerenciador de pacotes apropriado para sua distribuição, e instale o pacote jaz.
Caso contrário, encontre as instruções que correspondem à distribuição do Linux na lista a seguir.
Siga as instruções, mas instale jaz em vez do msopenjdk-25 pacote.
Versões de JVM com suporte
O Iniciador de Comandos do Azure para Java dá suporte a builds baseados em OpenJDK e foi testado com:
- Eclipse Temurin OpenJDK 8 com JVM do HotSpot
- Microsoft Build do OpenJDK 11, 17, 21 e 25.
Importante
O Iniciador de Comandos do Azure para Java requer uma instalação completa do JDK. Ele não é totalmente testado com instalações somente JRE ou runtimes de jlink personalizados. Para obter mais informações, consulte "Por que ele não funciona com o JRE ou os runtimes de jlink?".
Configuração
O jaz comando não consome argumentos de linha de comando para sua própria configuração.
Em vez disso, por padrão, ele passa todos os argumentos diretamente para o java comando.
Para garantir que jaz a configuração não interfira nos argumentos do aplicativo, jaz aceita apenas a configuração por meio de variáveis de ambiente.
O jaz comando pode ser configurado usando essas variáveis de ambiente:
| Variável de ambiente | Descrição |
|---|---|
JAZ_HELP |
Defina como 1 para imprimir uma mensagem de ajuda e sair com o código 0. |
JAZ_PRINT_VERSION |
Defina 1 para exibir a versão jaz no stdout e sair com o código 0. |
JAZ_DRY_RUN |
Defina como 1 para imprimir o comando java que seria executado e sair com o código 1. |
JAZ_BYPASS |
Defina 1 para ignorar os ajustes de otimização jaz. Nenhum efeito na telemetria. |
JAZ_IGNORE_USER_TUNING |
Defina para 1 ignorar todos os sinalizadores de ajuste fornecidos pelo usuário e aplicar o ajuste jaz. Caso contrário, jaz ajustará apenas a JVM se ela não detectar nenhum sinalizador de ajuste fornecido pelo usuário. Confira "O que acontece se eu já definir algumas opções de JVM em meu ambiente?" para obter mais informações sobre como jaz se comporta com e sem habilitar essa configuração. |
JAZ_EXIT_WITHOUT_FLUSH |
Defina como 1 para ignorar a descarga de telemetria na saída. Isso evita possíveis atrasos (até 30 segundos) jaz podem ser introduzidos durante a liberação de dados; no entanto, jaz ainda pode enviar telemetria. |
Usar variáveis de ambiente em vez de argumentos de linha de comando também facilita a configuração jaz em alguns casos.
Ao implantar um aplicativo em contêineres, às vezes é mais fácil definir variáveis de ambiente do que modificar scripts de inicialização e experimentar JAZ_IGNORE_USER_TUNING e JAZ_BYPASS pode ser útil ao avaliar jaz.
Roteiro
- ⚙️ Perfis de configuração de JVM
- 📦 Suporte ao AppCDS
- 🔄 Ajuste contínuo
- 📊 Telemetria
- 📦 Suporte do Leyden
Changelog
Versão prévia pública 1: 0.0.0-preview+20251118.1
- Implementar pacotes RPM e DEB.
- Aprimore os ajustes de liberação de memória do coletor de lixo.
- Pare de emitir saída de diagnóstico não clara quando o programa Java for encerrado com código diferente de zero.
- Aprimorar o encaminhamento de sinal do sistema operacional para o processo Java, por exemplo,
SIGTERMeSIGINT.- Parar um contêiner executando um aplicativo Java agora dá ao aplicativo tempo para desligar normalmente.
- Remova o uso de
PrintFlagsFinal, melhorando a compatibilidade com determinados aplicativos Java.- Corrigir chamadas para
System.console()que resultam em exceções. - Correção do buffer de fluxo stdout:
jaznão atrasa mais a retransmissão da saída até que ele veja um caractere de nova linha.
- Corrigir chamadas para
- Outras correções de bug e melhorias na resiliência interna.
Versão prévia privada 2
- Correções de bugs.
- Compatibilidade com distribuições Linux ampliada ao reduzir os requisitos de glibc.
-
jazagora detecta se algum ajuste manual de JVM está presente e, nesse caso, ele não aplica seus próprios ajustes. -
JAZ_IGNORE_USER_TUNING=1ignora o ajuste manual de JVM, se presente, e aplica os próprios ajustes do jaz. - Correção para a exibição da saída
PrintFlagsFinal(quando não solicitada) ao utilizarjazcom o OpenJDK HotSpot JVM 8.
Versão prévia privada 1
- Versão inicial do Inicializador de Comandos do Azure para Java.
Telemetria
O Iniciador de Comandos do Azure para Java coleta dados de uso e os envia à Microsoft para ajudar a melhorar nossos produtos e serviços. Para saber mais, leia nossa política de privacidade.