Provides answers to common questions about the Azure Command Launcher for Java.
How is `jaz` different from the `java` command?
The java
command runs the HotSpot JVM with default settings unless explicitly configured by the user.
jaz
launches java
with battle-tested, cloud-optimized JVM tuning defaults, designed to improve performance and cost-efficiency on Azure Containers and VMs.
Key benefit: developers don't need to manually tune the JVM. jaz
does it for them.
What should I do if I already set some JVM options in my environment?
If your workload already includes tuning flags, jaz
will still work.
We recommend removing those flags and letting jaz
apply its own, unless you know exactly what those flags do and why you need them.
If you want to keep specific settings, you can pass them normally. jaz
will append them to the end of the final java
command.
What happens if I do pass custom JVM flags when using `jaz`?
Yes. jaz
allows any JVM options passed by the user to take precedence.
The launcher appends your JVM flags to the final java
command line.
The JVM treats the rightmost flags with the highest priority, so your custom settings will override jaz
defaults if they match.
Certain flags may conflict though, and the java
launcher may not start. For example, jaz
will automatically select a garbage collector.
If your command also specifies a GC selection flag (e.g. -XX:UseZGC
), then the java
launcher will fail.
Can I pass `java` agent flag and selective -XX options with `jaz`?
Yes. You can still pass any java
argument, including -javaagent
, and they will be honored by jaz
.
Recommendation: remove general-purpose tuning flags like -Xmx
, -XX:MaxRAMPercentage
, etc., as jaz
sets those for you.
You may keep useful diagnostic flags such as:
-XX:NativeMemoryTracking=summary
-XX:+UnlockDiagnosticVMOptions
-Xlog
or-XX:LogFile
for logging-javaagent
for Application Insights or other APM instrumentation agents
jaz
appends your flags to the final command, so your values will override jaz
defaults when applicable.
If you want jaz
to skip all its tuning entirely for troubleshooting purposes, you can use:
JAZ_BYPASS=1
This is useful especially when you want to onboard jaz
while relying solely on the existing user-provided JVM
configuration or on java
launcher defaults, before cleaning up JVM tuning flags.
Is `jaz` compatible with non-Azure environments?
jaz
is designed and tested primarily for Azure Containers and VMs, but it can technically run elsewhere.
However, some advanced optimizations and future features may be Azure-specific.
Is `jaz` available for Windows Server?
jaz
is currently available for Linux on x64 and arm64 environments.
If you have an immediate need for Windows Server, please contact us at openjdk-support@microsoft.com