用途:将基于 JVM 的 Java 应用通过 GraalVM Native Image 提前编译(AOT)为独立原生可执行文件,以缩短启动时间、降低内存占用,适用于无服务器函数、CLI 工具和微服务。
主要能力:分析项目构建工具(Maven/Gradle)与框架(Spring Boot、Quarkus、Micronaut、纯 Java);配置 native-maven-plugin 或 org.graalvm.buildtools.native 插件;处理反射、资源、动态代理、序列化、JNI 等可达性元数据(reachability-metadata.json 及旧版 reflect-config.json 等);使用 tracing agent 自动收集元数据;通过 RuntimeHints、@RegisterReflectionForBinding 实现 Spring Boot 原生支持;迭代解析 ClassNotFoundException、NoSuchMethodException、MissingResourceException 等构建错误;验证启动时间与 RSS 内存;多阶段 Docker 构建。
使用方式:Maven 执行 ./mvnw -Pnative package 或 ./mvnw -Pnative native:compile;Gradle 执行 ./gradlew nativeCompile;tracing agent 命令为 java -agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image -jar target/myapp.jar。
限制:需 Java 17+(推荐 21+);采用封闭世界假设,构建时须已知全部代码路径,动态类加载、运行时字节码生成可能不可用;构建耗时约 2-10 分钟、需 4-8 GB 内存;部分依赖反射或 CGLIB 的库需大量元数据配置;Spring Boot 的 @Profile 与 @ConditionalOnProperty 在 AOT 阶段求值;建议使用 --no-fallback 确保真正原生构建。具体版本兼容性与效果数据以官方资料为准,本资料未提供收费信息。