Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le lanceur de commandes Azure pour Java (jaz) est un utilitaire léger qui simplifie la façon dont les développeurs Java exécutent leurs applications sur Azure.
En appliquant intelligemment des options de JVM (Java Virtual Machine) adaptées aux environnements cloud, l'outil réduit la surcharge de configuration et améliore l'utilisation des ressources prêt à l'emploi, avec un potentiel plus élevé afin d'optimiser les performances.
Cet outil est idéal pour les développeurs qui :
- Vous souhaitez de meilleures valeurs par défaut de JVM sans plonger profondément dans les repères de réglage.
- Développez et déployez des microservices natifs dans le cloud avec des infrastructures telles que Spring Boot, Starterus ou Micronaute.
- Préférez les flux de travail basés sur des conteneurs tels que Kubernetes et OpenShift.
- Déployez des charges de travail Java sur Azure Container Apps, Azure Kubernetes Service, Azure Red Hat OpenShift ou des machines virtuelles Azure.
Fonctionnalités clés
- 🛠 Ajuste automatiquement les indicateurs JVM pour les déploiements natifs cloud.
- Expérience 🚀 plug-and-play. Ajoutez simplement cela à votre fichier Dockerfile ou à votre script de lancement, en remplaçant la commande
javaparjaz. - ☁️ Optimisé pour les environnements Azure.
- 🔧 Personnalisable via des variables d’environnement. Il existe plusieurs façons de déployer en toute sécurité les modifications de configuration.
Environnements pris en charge
Le lanceur de commandes Azure pour Java peut être utilisé partout où le lanceur Java est disponible dans les environnements Linux. Il a été validé et testé sur les plateformes Azure et CI/CD suivantes :
- Azure Kubernetes Service (AKS)
- Azure Container Apps (Applications de Conteneur Azure)
- Azure App Service
- Azure Functions
- Azure Red Hat OpenShift (ARO)
- Machines virtuelles Azure
- Azure DevOps
- GitHub Codespaces
- GitHub Actions
Aperçu public
Le lanceur de commandes Azure pour Java est désormais disponible en préversion publique ! Lisez l’annonce de la préversion publique pour une présentation de cet outil et de ses avantages.
Fonctionnement
Le lanceur de commandes Azure pour Java se trouve entre votre commande de démarrage de conteneur ou de machine virtuelle et la machine virtuelle JVM. Lorsque vous lancez l’outil, il :
- Détecte l’environnement cloud (par exemple, les limites de conteneur et la mémoire disponible).
- Analyse le type de charge de travail et sélectionne les indicateurs de réglage JVM les mieux adaptés, tels que :
- Dimensionnement du tas.
- Sélection et ajustement du ramasse-miettes.
- Paramètres de journalisation et de diagnostic en fonction des besoins.
- Lance un processus Java, en lui transmettant les indicateurs de paramétrage et tous les arguments fournis par l’utilisateur.
- Invisibly relaye stdout, stderr, stdin et les signaux du système d’exploitation vers et depuis le processus Java.
- Surveille le processus Java et relaye son code de sortie lorsqu’il se termine.
Exemple d’utilisation
Le lanceur de commandes Azure pour Java est un remplacement direct de la commande java, ne nécessitant aucune modification du code. Remplacez simplement java par jaz dans vos scripts de lancement — par exemple, remplacez java -jar foo.jar par jaz -jar foo.jar.
Au lieu de régler manuellement vos options JVM :
JAVA_OPTS="-XX:... several JVM tuning flags"
java $JAVA_OPTS -jar myapp.jar
Utilisez jaz :
jaz -jar myapp.jar
Votre application peut bénéficier automatiquement des avantages suivants :
- Valeurs par défaut éprouvées pour les charges de travail cloud native et conteneur.
- Réduction des déchets de mémoire dans le cloud.
- Meilleures performances de démarrage et de préchauffement.
Installation
Le lanceur de commandes Azure pour Java est disponible pour Linux x64 et arm64. Les méthodes d’installation prises en charge sont les suivantes :
- Utilisez une image conteneur avec l’outil préinstallé.
- Installez sur Azure Linux.
- Installez à partir du référentiel de logiciels Linux pour les produits Microsoft.
Images de conteneur
L’outil est inclus dans les images de conteneur pour la build Microsoft d’OpenJDK. Aucune configuration supplémentaire n’est nécessaire.
Par exemple, ce fichier Dockerfile utilise jaz pour exécuter une application Java à partir d’un jar fichier :
# 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"]
Installer sur Azure Linux
Installez le jaz package avec la commande suivante :
sudo tdnf install jaz
Installer à partir du référentiel logiciel Linux pour les produits Microsoft
Si vous avez déjà configuré le référentiel logiciel Linux pour les produits Microsoft, exécutez la commande de gestionnaire de package appropriée pour votre distribution pour installer le jaz package.
Sinon, recherchez les instructions qui correspondent à votre distribution Linux dans la liste suivante.
Suivez les instructions, mais installez jaz au lieu du msopenjdk-25 package.
Versions de JVM prises en charge
Le lanceur de commandes Azure pour Java prend en charge les builds basées sur OpenJDK et a été testé avec :
- Eclipse Temurin OpenJDK 8 avec HotSpot JVM
- Build Microsoft d’OpenJDK 11, 17, 21 et 25.
Important
Le lanceur de commandes Azure pour Java nécessite une installation complète de JDK. Il n’est pas entièrement testé avec des installations JRE uniquement ou des runtimes jlink personnalisés. Pour plus d’informations, consultez « Pourquoi ne fonctionne-t-il pas avec les runtimes JRE ou jlink ? ».
Paramétrage
La jaz commande ne consomme aucun argument de ligne de commande pour sa propre configuration.
Au lieu de cela, par défaut, il transmet tous les arguments directement à la java commande.
Pour vous assurer que la jaz configuration n’interfère pas avec les arguments de votre application, jaz accepte uniquement la configuration via des variables d’environnement.
La jaz commande peut être configurée à l’aide de ces variables d’environnement :
| Variable d'environnement | Description |
|---|---|
JAZ_HELP |
Définissez 1 pour imprimer un message d’aide et quitter avec le code 0. |
JAZ_PRINT_VERSION |
Définir à 1 pour imprimer la version jaz sur stdout et quitter avec le code 0. |
JAZ_DRY_RUN |
Définissez 1 pour imprimer la commande java qui serait exécutée et quitter avec le code 1. |
JAZ_BYPASS |
Définissez 1 pour contourner jaz les ajustements d’optimisation. Aucun effet sur la télémétrie. |
JAZ_IGNORE_USER_TUNING |
Définissez sur 1 pour ignorer tous les indicateurs de réglage fournis par l'utilisateur et appliquer à la place le réglage jaz. Sinon, jaz n'ajustera la JVM que si aucun indicateur de réglage fourni par l'utilisateur n'est détecté. Consultez « Que se passe-t-il si j’ai déjà défini certaines options JVM dans mon environnement ? » pour plus d’informations sur jaz le comportement et sans activer ce paramètre. |
JAZ_EXIT_WITHOUT_FLUSH |
Définissez la valeur à 1 pour ignorer le vidage des données de télémétrie lors de la sortie. Cela évite les retards potentiels (jusqu’à 30s) que jaz pourrait introduire lors du vidage des données, mais jaz peut toujours envoyer des données de télémétrie. |
L’utilisation de variables d’environnement plutôt que d’arguments de ligne de commande facilite également la configuration jaz dans certains cas.
Lors du déploiement d’une application conteneurisée, il est parfois plus facile de définir des variables d’environnement que de modifier des scripts de lancement et d’expérimenter JAZ_IGNORE_USER_TUNING et JAZ_BYPASS peut être utile lors de l’évaluation jaz.
Feuille de route
- ⚙️ Profils de configuration JVM
- 📦 Prise en charge d’AppCDS
- 🔄 Réglage continu
- 📊 Télémétrie
- 📦 Prise en charge de Leyden
Journal des modifications
Préversion publique 1 : 0.0.0-preview+20251118.1
- Implémentez des packages RPM et DEB.
- Améliorer les ajustements de désengagement du ramasse-miettes.
- Arrêtez d’émettre des résultats de diagnostic flous lorsque le programme Java se termine avec un code différent de zéro.
- Améliorer le transfert de signal du système d’exploitation vers le processus Java, par exemple,
SIGTERMetSIGINT.- L’arrêt d’un conteneur exécutant une application Java donne maintenant le temps à l’application de s’arrêter correctement.
- Supprimez l’utilisation de
PrintFlagsFinal, améliorant la compatibilité avec certaines applications Java.- Corriger les appels à
System.console()générant des exceptions. - Correction du buffering du flux stdout :
jazne retarde plus le retransmet de la sortie jusqu'à ce qu'il rencontre un caractère de nouvelle ligne.
- Corriger les appels à
- Autres correctifs de bogues et améliorations de la résilience interne.
Préversion privée 2
- Correctifs de bogues.
- Compatibilité des distributions Linux étendue en réduisant les exigences de glibc.
-
jazdétecte maintenant si un réglage JVM manuel est présent et, dans ce cas, il n’applique pas ses propres ajustements. -
JAZ_IGNORE_USER_TUNING=1ignore le réglage manuel de JVM s’il est présent et applique les propres réglages de jaz à la place. - Correction de l'affichage
PrintFlagsFinalde la sortie (lorsqu'elle n'est pas demandée) lors de l'utilisation dejazavec OpenJDK HotSpot JVM 8.
Préversion privée 1
- Version initiale du lanceur de commandes Azure pour Java.
Télémétrie
Le lanceur de commandes Azure pour Java collecte les données d’utilisation et les envoie à Microsoft pour améliorer nos produits et services. Pour en savoir plus, lisez notre déclaration de confidentialité.