Version
- GraalVM 25.3 (Innovation)
- GraalVM 25.0 (LTS)
- GraalVM for JDK 21 (LTS)
- GraalVM for JDK 17 (LTS)
- Archives
- Dev Build
- Getting Started with Native Image
- Guides
- Native Image Basics
- Build Overview
- Reachability Metadata
- Optimizations and Performance
- Debugging and Diagnostics
- Dynamic Features
- Certificate Management
- Java Native Interface
- JCA Security Services
- URL Protocols
- Interoperability with Native Code
- Web Image
- Workshops and Labs
Dynamic Features of Java
When you build a native image, it only includes elements that static analysis finds reachable from your application entry point, its dependent libraries, and the JDK. Some Java features, such as reflection and resource access, determine the elements they use only at run time. If Native Image cannot determine that an element is needed, the generated binary does not include it and the application can fail at run time.
For dynamic features that require configuration, use Reachability Metadata. That page explains how to provide metadata, documents each supported metadata type, and provides the JSON schema reference.
For feature-specific information, see the following documentation: