jaotc(1) JDK Commands jaotc(1)
NAME
jaotc - The Java static compiler that produces native code for compiled
Java methods
SYNOPSIS
jaotc [options] [name | list]
options
Command-line options separated by spaces. See jaotc Options.
name The Java class or jar file from which Java methods will be com-
piled.
list Colon (:) separated list of class names, modules, jar files or
directories which contain class files.
DESCRIPTION
The jaotc command is a Java Ahead-Of-Time (AOT) static compiler which
produces native code in the form of a shared library for the Java meth-
ods in specified Java class files. The Java Virtual Machine can load
these AOT libraries and use native code from them when corresponding
Java methods are called. By using jaotc, there is no need to wait for
the JIT compiler to generate (by compiling bytecode) the fast native
code for these Java methods. The code is already generated by jaotc
and ready to be immediately used. For the same reason, there is no
need to execute these methods in the Interpreter because fast compiled
native code can be executed instead.
Note:
The jaotc command is experimental. See JEP 295: Ahead-of-Time Compila-
tion [https://openjdk.java.net/jeps/295] for complete details.
JAOTC OPTIONS
--output file
Output file name. Default name is "unnamed.so".
--class-name class-names
List of Java classes to compile.
--jar jar-files
List of JAR files to compile.
--module modules
List of Java modules to compile.
--directory dirs
List of directories to search for files to compile.
--search-path dirs
List of directories to search for specified files.
--compile-commands file
Name of the file containing the compile commands:
exclude
Excludes compilation of specified methods.
compileOnly
Compiles only specified methods.
Regular expressions are used to specify classes and methods.
For example:
exclude sun.util.resources..*.TimeZoneNames_.*.getContents\(\)\[\[Ljava/lang/Object;
exclude sun.security.ssl.*
compileOnly java.lang.String.*
--compile-for-tiered
Generates profiling code for tiered compilation. By default,
profiling code is not generated (could be changed in a future).
--compile-with-assertions
Generates code with java assertions. By default, assertions
code is not generated.
--compile-threads number
Sets the number of compilation threads used. The default value
is min(16, available_cpus).
--ignore-errors
Ignores all exceptions thrown during class loading. By default,
the tool will exit compilation if class loading throws an excep-
tion.
--exit-on-error
Exits on compilation errors. By default, failed compilation is
skipped and compilation of other methods continues.
--info Prints information about compilation phases.
--verbose
Prints more details about compilation phases.
--debug
Prints comprehensive details.
--help or -h or -?
Prints a summary of standard options and exits the tool.
--version
Prints version information.
-Jflag Provides a flag to pass to the runtime system. To pass more
than one flag, provide an instance of this option for each flag
or flag argument needed.
JAOTC EXAMPLES
Use the jaotc tool to execute AOT compilation.
jaotc --output libHelloWorld.so HelloWorld.class
Specify a generated AOT library during application execution:
java -XX:+UnlockExperimentalVMOptions -XX:AOTLibrary=./libHelloWorld.so HelloWorld
JDK 15 2020 jaotc(1)
openjdk 15.0.2 - Generated Thu Feb 25 15:31:38 CST 2021
