# Ahead Of Time (AOT) compilation for the Java Virtual Machine (JVM)

Ahead Of Time (AOT) compilation build tools such as those provided by
[GraalVM's `native-image`](https://www.graalvm.org/reference-manual/native-image/)
can require some configuration when using protobuf. Protobuf for the JVM uses
reflection, and some of its target classes are not possible to determine in
advance. This situation is unlikely to change.

[The Lite version of protobuf for the JVM](https://github.com/protocolbuffers/protobuf/blob/main/java/lite.md)
avoids reflection and may be better suited for use with AOT compilation tooling.
This Lite version was originally targeted for use on Android which has similar
AOT compilation goals as GraalVM's native-image tool.

## GraalVM native-image

The GraalVM `native-image` tool can be configured with options for the \
[Java Native Interface](https://www.graalvm.org/22.0/reference-manual/native-image/JNI/)
(JNI), http proxying, reflection, and other resources. While these configuration
options can be manually specified in JSON files, we recommend that you exercise
the application with
[the assisted configuration agent](https://www.graalvm.org/reference-manual/native-image/BuildConfiguration/#assisted-configuration-of-native-image-builds).
The agent will generate native-image.properties files that you add to the
project's META-INF/native-image/ directory. The Native Image builder uses
configuration options provided in META-INF/native-image/ to construct
native-image command line arguments.
