Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Iniciador de Comandos do Azure para Java (jaz) é um utilitário leve que simplifica a forma como os desenvolvedores Java executam seus aplicativos no Azure.
Ao aplicar de forma inteligente opções de Máquina Virtual Java (JVM) adaptadas a ambientes cloud, a ferramenta reduz a sobrecarga de configuração e melhora a utilização de recursos logo de partida, com maior potencial para melhor desempenho.
Esta ferramenta é ideal para desenvolvedores que:
- Quero melhores configurações padrão de JVM sem me aprofundar nos guias de ajuste.
- Desenvolver e implementar microserviços nativos da cloud com frameworks como Spring Boot, Quarkus ou Micronaut.
- Prefiro fluxos de trabalho baseados em contentores, como Kubernetes e OpenShift.
- Implantar workloads Java em Azure Container Apps, Azure Kubernetes Service, Azure Red Hat OpenShift ou Azure Virtual Machines.
Principais características
- 🛠 Ajusta automaticamente as bandeiras da JVM para implementações cloud-native.
-
🚀 Experiência plug-and-play. Basta adicionar ao seu Dockerfile ou script de lançamento, substituindo o comando
javapelojaz. - ☁️ Otimizado para ambientes Azure.
- 🔧 Personalizável através de variáveis de ambiente. Existem várias formas de implementar alterações de configuração de forma segura.
Ambientes suportados
O Azure Command Launcher para Java pode ser usado onde quer que o launcher Java esteja disponível em ambientes baseados em Linux. Foi validado e testado nas seguintes plataformas Azure e CI/CD:
- Serviço Kubernetes do Azure (AKS)
- Azure Container Apps
- Serviço de Aplicações do Azure
- Funções do Azure
- Azure Red Hat OpenShift (ARO)
- Máquinas Virtuais do Azure
- Azure DevOps
- GitHub Codespaces
- GitHub Actions
Pré-visualização pública
O Azure Command Launcher para Java já está disponível em pré-visualização pública! Leia o anúncio de pré-visualização pública para uma introdução a esta ferramenta e aos seus benefícios.
Como funciona
O Azure Command Launcher para Java situa-se entre o comando de arranque do teu contentor ou máquina virtual e a JVM. Quando lanças a ferramenta, ela:
- Deteta o ambiente da cloud (por exemplo, limites de contentores e memória disponível).
- Analisa o tipo de carga de trabalho e seleciona os parâmetros de ajuste da JVM mais apropriados, tais como:
- Tamanho de pilha.
- Seleção e afinação do coletor de lixo.
- Registo e definições de diagnóstico conforme necessário.
- Lança um processo Java, passando-lhe as opções de afinação e quaisquer argumentos providenciados pelo utilizador.
- Retransmite invisivelmente os stdout, stderr, stdin e sinais de sistema operativo para e do processo Java.
- Monitoriza o processo Java e transmite o seu código de saída quando termina.
Exemplo de utilização
O Azure Command Launcher para Java é um substituto direto para o java comando, não requerendo alterações de código. Basta substituir java por jaz nos seus scripts de lançamento — por exemplo, substituir java -jar foo.jar por jaz -jar foo.jar.
Em vez de ajustar as opções da JVM manualmente:
JAVA_OPTS="-XX:... several JVM tuning flags"
java $JAVA_OPTS -jar myapp.jar
Utilize jaz:
jaz -jar myapp.jar
Seu aplicativo pode se beneficiar automaticamente de:
- Padrões comprovados para cargas de trabalho nativas da nuvem e contentores.
- Redução do desperdício de memória na cloud.
- Melhor desempenho no arranque e no aquecimento.
Instalação
O Azure Command Launcher para Java está disponível tanto para x64 como para arm64 Linux. Os métodos de instalação suportados são:
- Use uma imagem de contentor com a ferramenta pré-instalada.
- Instale no sistema Azure Linux.
- Instalar a partir do Repositório de Software Linux para Produtos Microsoft.
Imagens de contêiner
A ferramenta está incluída nas imagens de container para a Microsoft Build do OpenJDK. Não é preciso mais configuração.
Por exemplo, este Dockerfile utiliza jaz para executar uma aplicação Java a partir de um ficheiro 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"]
Instalar no Azure Linux
Instale o jaz pacote com o seguinte comando:
sudo tdnf install jaz
Instalar a partir do Repositório de Software Linux para Produtos Microsoft
Se já configurou o Linux Software Repository for Microsoft Products, execute o comando gestor de pacotes apropriado para a sua distribuição instalar o jaz pacote.
Caso contrário, encontre as instruções que correspondam à sua distribuição Linux na lista seguinte.
Segue as instruções, mas instala jaz em vez do msopenjdk-25 pacote.
Versões JVM suportadas
O Azure Command Launcher para Java suporta compilações baseadas em OpenJDK e foi testado com:
- Eclipse Temurin OpenJDK 8 com HotSpot JVM
- Versão Microsoft do OpenJDK 11, 17, 21 e 25.
Importante
O Azure Command Launcher para Java requer uma instalação completa do JDK. Não está totalmente testado com instalações apenas de JRE ou ambientes de execução personalizados de jlink. Para mais informações, veja "Porque é que não funciona com runtimes JRE ou jlink?".
Configuração
O jaz comando não consome argumentos de linha de comandos para a sua própria configuração.
Em vez disso, por defeito, passa todos os argumentos diretamente para o java comando.
Para garantir que a jaz configuração não interfira com os argumentos da sua aplicação, jaz apenas aceita a configuração através das variáveis de ambiente.
O jaz comando pode ser configurado usando estas variáveis de ambiente:
| Variável de ambiente | Descrição |
|---|---|
JAZ_HELP |
Defina 1 para imprimir uma mensagem de ajuda e sair com o código 0. |
JAZ_PRINT_VERSION |
Defina para 1 imprimir a jaz versão para stdout e sair com código 0. |
JAZ_DRY_RUN |
Define para 1 imprimir o java comando que será executado e sai com código 1. |
JAZ_BYPASS |
Defina 1 para evitar os ajustes de otimização em jaz. Nenhum efeito na telemetria. |
JAZ_IGNORE_USER_TUNING |
Defina como 1 para ignorar todas as flags de afinação fornecidas pelo utilizador e aplicar a afinação jaz em vez disso. Caso contrário, jaz só afinará a JVM se não detetar flags de sintonia fornecidos pelo utilizador. Veja "O que acontece se eu já definir algumas opções de JVM no meu ambiente?" para mais informações sobre como jaz se comporta com e sem ativar esta definição. |
JAZ_EXIT_WITHOUT_FLUSH |
Defina como 1 para ignorar a telemetria de liberação na saída. Isto evita que potenciais atrasos (até 30 segundos) jaz possam ser introduzidos durante a descarga de dados, no entanto jaz ainda pode enviar telemetria. |
Usar variáveis de ambiente em vez de argumentos de linha de comandos também facilita a configuração jaz , em alguns casos.
Ao implementar uma aplicação containerizada, por vezes é mais fácil definir variáveis de ambiente do que modificar scripts de lançamento, e experimentar JAZ_IGNORE_USER_TUNING com e JAZ_BYPASS pode ser útil ao avaliar jaz.
Roteiro
- ⚙️ Perfis de configuração da JVM
- 📦 Suporte AppCDS
- 🔄 Ajustamento contínuo
- 📊 Telemetria
- 📦 Apoio a Leyden
Registo de alterações
Pré-visualização pública 1: 0.0.0-pré-visualização+20251118.1
- Implementar pacotes RPM e DEB.
- Melhorar os ajustes de descomprometimento do coletor de lixo.
- Deixe de emitir saída diagnóstica pouco clara quando o programa Java sair com um código não zero.
- Melhorar o encaminhamento do sinal do sistema operativo para o processo Java, por exemplo,
SIGTERMeSIGINT.- Parar um contentor a correr uma aplicação Java dá agora tempo à aplicação para se desligar de forma natural.
- Remover o uso de
PrintFlagsFinal, melhorando a compatibilidade com certas aplicações Java.- Corrigir chamadas para
System.console()que geram exceções. - Corrigir o buffering do stream stdout:
jazjá não atrasa a transmissão de saída até encontrar um caractere de nova linha.
- Corrigir chamadas para
- Outras correções de bugs e melhorias na resiliência interna.
Pré-visualização privada 2
- Correções de bugs.
- Expansão da compatibilidade com distribuições Linux ao reduzir os requisitos glibc.
-
jazagora deteta se existe alguma afinação manual da JVM e, nesse caso, não aplica os seus próprios ajustes. -
JAZ_IGNORE_USER_TUNING=1ignora a sintonia manual da JVM, se existente, e aplica os seus próprios ajustes de sintonia. - Saída fixa
PrintFlagsFinala aparecer (quando não solicitado) ao usarjazcom o OpenJDK HotSpot JVM 8.
Pré-visualização privada 1
- Versão inicial do Azure Command Launcher para Java.
Telemetria
O Azure Command Launcher for Java recolhe dados de utilização e envia-os para a Microsoft para ajudar a melhorar os nossos produtos e serviços. Para saber mais, leia a nossa declaração de privacidade.