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 (Java Virtual Machine) 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 Virtual Machines.
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?
We recommend removing any tuning flags and letting jaz
apply its own.
jaz
considers most flags that start with -X
or -XX
to be a tuning flag.
A notable example of a flag that isn't a tuning flag is one that starts with -Xlog
.
When jaz
looks for tuning flags, it handles the environment variables that java
reads automatically.
The environment variables are:
- Java 8:
JAVA_TOOL_OPTIONS
,_JAVA_OPTIONS
- Java 9 and later:
JAVA_TOOL_OPTIONS
,JDK_JAVA_OPTIONS
,_JAVA_OPTIONS
jaz
also handles @-files, also known as command line argument files.
What happens if I do pass custom JVM tuning flags when using `jaz`?
If your workload already includes tuning flags, then by default, jaz
doesn't apply its tuning defaults.
jaz
launches java
with the flags you chose.
You can configure jaz
to ignore the custom JVM tuning flags and pass its own instead by setting an environment variable:
JAZ_IGNORE_USER_TUNING=1
The ignore user tuning setting applies to command line arguments, environment variables read by java
, and @-files.
Can I pass `java` agent flag with `jaz`?
Yes. You can still pass -javaagent
and other flags that aren't tuning flags, and jaz
honors them.
You can keep useful diagnostic flags such as:
-Xlog
for logging-javaagent
for Application Insights or other Application Performance Monitoring (APM) instrumentation agents
If you want jaz
to skip all of its tuning for troubleshooting purposes, you can use:
JAZ_BYPASS=1
Bypassing tuning 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 Virtual Machines, but it can technically run elsewhere.
However, some advanced optimizations and future features might 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