Sdílet prostřednictvím


Spouštěč příkazů Azure pro Javu (Public Preview)

Spouštěč příkazů Azure pro Javu (jaz) je jednoduchý nástroj, který zjednodušuje, jak vývojáři v Javě spouštějí své aplikace v Azure. Díky inteligentnímu použití možností prostředí Java Virtual Machine (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 úlohy Java v 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 prostředí Azure.
  • 🔧 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 Javu se dá použít všude, kde je spouštěč Java dostupný v linuxových prostředích. Ověřili a otestovali ho 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 Javu je teď dostupný 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 Javu se nachází mezi vaším kontejnerem nebo spouštěcím příkazem 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í proces Java, předá mu ladící příznaky a jakékoli argumenty zadané uživatelem.
  4. Neviditelně přenáší stdout, stderr, stdin a signály OS do a z procesu Java.
  5. Monitoruje proces Javy a předává jeho ukončovací kód při ukončení.

Příklad využití

Spouštěč příkazů Azure pro Javu je náhradním příkazem 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 Javu je k dispozici pro platformu x64 i arm64 Linux. Podporované metody instalace:

Obrázky kontejnerů

Tento nástroj je součástí image kontejneru pro Microsoft Build OpenJDK. Další nastavení není nutné.

Tento soubor Dockerfile například používá jaz ke spuštění aplikace Java ze jar souboru:

# 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 v Azure Linuxu

jaz Nainstalujte balíček pomocí následujícího příkazu:

sudo tdnf install jaz

Instalace z úložiště softwaru pro Linux pro produkty Microsoftu

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

V opačném případě vyhledejte pokyny, které odpovídají vaší distribuci Linuxu, v následujícím seznamu. Postupujte podle pokynů, ale nainstalujte jaz místo balíčku msopenjdk-25.

Podporované verze prostředí JVM

Spouštěč příkazů Azure pro Javu podporuje sestavení založená na sadě OpenJDK a byla testována s:

Důležité

Spouštěč příkazů Azure pro Javu 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

Public Preview 1: 0.0.0-preview+20251118.1

  • Implementujte balíčky RPM a DEB.
  • Vylepšete úpravy správce paměti pro uvolnění nevyužité paměti.
  • Přestaňte generovat nejasný diagnostický výstup, když program Java skončí s nenulovým kódem.
  • Zlepšení předávání signálu operačního systému do procesu Javy, například SIGTERM a SIGINT.
    • Zastavení kontejneru, na kterém běží aplikace v Javě, teď dává čas k řádnému vypnutí aplikace.
  • Odstraňte používání PrintFlagsFinal pro zlepšení kompatibility 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 Javu

Telemetrie

Spouštěč příkazů Azure pro Javu shromažďuje data o využití a odesílá je Microsoftu, 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ů.