spouštěč příkazů Azure pro Java (Public Preview)

Spouštěč příkazů Azure pro Java (jaz) je jednoduchý nástroj, který zjednodušuje, jak Java vývojáři spouštějí své aplikace na Azure. Díky inteligentnímu použití možností Java virtuálních počítačů (JVM) přizpůsobených pro cloudová prostředí nástroj snižuje režii na konfiguraci a zlepšuje využití prostředků s vyšším potenciálem pro lepší výkon.

Tento nástroj je ideální pro vývojáře, kteří:

  • Potřebujete lepší výchozí hodnoty JVM, aniž byste se ponořili do průvodců laděním.
  • Vyvíjejte a nasazujte nativní cloudové mikroslužby pomocí architektur, jako jsou Spring Boot, Quarkus nebo Micronaut.
  • Upřednostněte pracovní postupy založené na kontejnerech, jako jsou Kubernetes a OpenShift.
  • Nasaďte Java úlohy na Azure Container Apps, Azure Kubernetes Service, Azure Red Hat OpenShift nebo Azure Virtual Machines.

Klíčové funkce

  • 🛠 Automaticky optimalizuje příznaky JVM pro cloudově-nativní nasazení.
  • 🚀 Zážitek plug-and-play Stačí vložit do souboru Dockerfile nebo spustit skript a nahradit java příkaz příkazem jaz.
  • ☁️ Optimalizováno pro Azure prostředí.
  • 🔧 Přizpůsobitelné prostřednictvím proměnných prostředí. Existuje několik způsobů, jak bezpečně zavést změny konfigurace.

Podporovaná prostředí

Spouštěč příkazů Azure pro Java lze použít všude, kde je spouštěč Java dostupný v linuxových prostředích. Ověřil a otestoval se na následujících platformách Azure a CI/CD:

  • Azure Kubernetes Service (AKS)
  • Azure Container Apps
  • Azure App Service
  • Azure Functions
  • Azure Red Hat OpenShift (ARO)
  • Azure Virtual Machines
  • Azure DevOps
  • GitHub Codespaces
  • GitHub Actions

Veřejná ukázka

Spouštěč příkazů Azure pro Java je nyní k dispozici ve verzi Public Preview! Přečtěte si oznámení verze Public Preview , kde najdete úvod k tomuto nástroji a jeho výhodám.

Jak to funguje

Spouštěč příkazů Azure pro Java se nachází mezi příkazem spuštění kontejneru nebo virtuálního počítače a prostředím JVM. Když nástroj spustíte, bude následující:

  1. Zjistí cloudové prostředí (například limity kontejnerů a dostupnou paměť).
  2. Analyzuje typ úlohy a vybere nejvhodnější parametry ladění JVM, například:
    • Velikost haldy.
    • Výběr a ladění garbage kolektoru
    • Nastavení protokolování a diagnostiky podle potřeby
  3. Spustí Java proces, předá mu příznaky ladění i všechny argumenty poskytnuté uživatelem.
  4. Neviditelně přenáší stdout, stderr, stdin a OS signály do a z procesu Java.
  5. Monitoruje proces Java a předává jeho ukončovací kód při ukončení.

Příklad využití

Spouštěč příkazů Azure pro Java je nahrazením příkazu java, který nevyžaduje žádné změny kódu. Jednoduše nahraďte ve svých spouštěcích skriptech java za jaz, například nahraďte java -jar foo.jar za jaz -jar foo.jar.

Místo ručního ladění možností prostředí JVM:

JAVA_OPTS="-XX:... several JVM tuning flags"
java $JAVA_OPTS -jar myapp.jar

jaz použijte:

jaz -jar myapp.jar

Vaše aplikace může automaticky těžit z:

  • Výchozí hodnoty testované bitvou pro nativní cloudové úlohy a úlohy kontejnerů
  • Snížení plýtvání paměti v cloudu.
  • Lepší výkon při spuštění a zahřátí.

Instalace

Spouštěč příkazů Azure pro Java je k dispozici pro platformu x64 i arm64 Linux. Podporované metody instalace:

Obrázky kontejnerů

Nástroj je součástí kontejnerových imagí Microsoft Build OpenJDK. Další nastavení není nutné.

Například následující soubor Dockerfile používá jaz ke spuštění aplikace Java ze souboru 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"]

Instalace na Azure Linux

Pro virtuální počítače a další Azure linuxová prostředí můžete nástroj nainstalovat pomocí správce balíčků tdnf. jaz Nainstalujte balíček pomocí následujícího příkazu:

sudo tdnf install jaz

Další linuxové distribuce

Pokud jste už nastavili úložiště softwaru pro Linux pro Microsoft Products, spusťte příslušný příkaz správce balíčků pro vaši distribuci a nainstalujte balíček jaz.

Například v distribucích založených na Ubuntu nebo Debianu spusťte:

sudo apt-get install jaz

Pokud nemáte nastavené úložiště softwaru pro Linux pro Microsoft Products, postupujte podle pokynů pro distribuci Linuxu.

Pokud chcete nainstalovat na Ubuntu, otevřete terminál a spusťte následující příkazy:

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

Po přidání úložiště nainstalujte jaz spuštěním následujících příkazů:

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install jaz

Podporované verze prostředí JVM

Spouštěč příkazů Azure pro Java vyžaduje, aby v systému byla nainstalována sada JDK založená na openJDK (verze 8 nebo novější). Testoval se s:

Důležité

Spouštěč příkazů Azure pro Java vyžaduje úplnou instalaci sady JDK. Není plně testováno s instalacemi pouze JRE nebo s vlastním jlink runtime prostředím. Další informace najdete v tématu "Proč to nefunguje s runtime JRE nebo jlink?".

Konfigurace

Tento jaz příkaz nepoužívá žádné argumenty příkazového řádku pro vlastní konfiguraci. Místo toho ve výchozím nastavení předává všechny argumenty přímo do java příkazu. Pokud chcete zajistit, aby jaz konfigurace nenarušovala argumenty vaší aplikace, jaz přijímá konfiguraci pouze prostřednictvím proměnných prostředí.

Příkaz jaz lze nakonfigurovat pomocí těchto proměnných prostředí:

Proměnná prostředí Popis
JAZ_HELP Nastavit na 1 pro tisk zprávy nápovědy a ukončení s kódem 0.
JAZ_PRINT_VERSION Nastavte na 1 pro tisk jaz verze na stdout a ukončete s kódem 0.
JAZ_DRY_RUN Nastavte na 1 pro tisk příkazu java, který by se spustil a proces by se ukončil s kódem 1.
JAZ_BYPASS Nastavte na 1 pro obejití úprav jaz optimalizace. Žádný vliv na telemetrii.
JAZ_IGNORE_USER_TUNING Nastavte na 1, abyste ignorovali všechny ladicí příznaky poskytnuté uživatelem a místo toho použili ladění jaz. Jinak jaz vyladí JVM pouze tehdy, pokud nezjistí žádné ladicí parametry poskytnuté uživatelem. Více informací o tom, jak funguje s povolením a bez povolení tohoto nastavení, najdete v tématu jaz.
JAZ_EXIT_WITHOUT_FLUSH Nastavte na 1, aby se při ukončení vynechalo vyprázdnění telemetrie. Tím se zabrání potenciálním zpožděním (až 30s) jaz při vyčištění dat, ale telemetrie se jaz může stále posílat.

Použití proměnných prostředí místo argumentů příkazového řádku usnadňuje konfiguraci jaz v některých případech. Při nasazování kontejnerizované aplikace je někdy jednodušší nastavit proměnné prostředí než upravit spouštěcí skripty a experimentování s JAZ_IGNORE_USER_TUNING a JAZ_BYPASS může být užitečné při hodnocení jaz.

Plán cesty

  • ⚙️ Konfigurační profily prostředí JVM
  • 📦 Podpora AppCDS
  • 🔄 Průběžné ladění
  • 📊 Telemetrie
  • 📦 Podpora pro Leyden

Protokol změn

0.0.0-preview+20260421.1

  • Aktualizace závislostí.

0.0.0-preview+20260408.1

  • Aktualizace závislostí.

0.0.0-preview+20260403.2

  • Aktualizace závislostí.

0.0.0-preview+20260323.1

  • Aktualizace závislostí.

0.0.0-preview+20260223.1

  • Aktualizace závislostí.

0.0.0-preview+20260120.1

  • Aktualizace závislostí.

0.0.0-preview+20251211.7

  • Aktualizace závislostí.
  • Další opravy chyb

0.0.0-preview+20251205.1

  • Interní opravy chyb.

0.0.0-preview+20251126.1

  • Přidejte Microsoft Build of OpenJDK 25 do seznamu certifikovaných verzí.

0.0.0-preview+20251120.1

  • Aktualizace závislostí.

0.0.0-preview+20251118.1

  • Připojte se k veřejné ukázce.
  • Implementujte balíčky RPM a DEB.
  • Vylepšete úpravy správce paměti pro uvolnění nevyužité paměti.
  • Zastavení generování nejasného diagnostického výstupu při ukončení programu Java nenulovým kódem.
  • Vylepšete předávání signálů operačního systému na proces Java, například SIGTERM a SIGINT.
    • Zastavení kontejneru, na kterém běží Java aplikace, teď dává aplikaci čas na řádné vypnutí.
  • Odeberte použití PrintFlagsFinal, což zlepšuje kompatibilitu s určitými aplikacemi Java.
    • Opravit volání System.console() vyvolávající výjimky
    • Oprava ukládání streamů do vyrovnávací paměti stdout: jaz už nezpožďuje předávání výstupu, dokud neuvidí znak nového řádku.
  • Další opravy chyb a vylepšení interní odolnosti

Soukromý náhled 2

  • Opravy chyb.
  • Rozšířená kompatibilita distribucí Linuxu díky snížení požadavků na glibc.
  • jaz nyní zjistí, jestli je přítomno ruční ladění JVM, a v takovém případě neaplikuje vlastní úpravu.
  • JAZ_IGNORE_USER_TUNING=1 ignoruje ruční ladění JVM, pokud je přítomné, a místo toho použije vlastní úpravy ladění Jaz.
  • Opravili jsme PrintFlagsFinal zobrazení výstupu (pokud není požadováno) při použití jaz s OpenJDK HotSpot JVM 8.

Soukromá ukázka 1

  • Počáteční verze spouštěče příkazů Azure pro Java

Telemetrie

Azure spouštěč příkazů pro Java shromažďuje data o využití a odesílá je do Microsoft, aby pomohl vylepšit naše produkty a služby. Další informace najdete v našem prohlášení o zásadách ochrany osobních údajů.