Skip to content

Native Image

在运行时通过 反射(reflection) 动态访问的类和方法,都必须在构建时通过 "hints"(提示) 明确告知编译器,否则就会在运行时出错。

plugin

xml

<plugins>
    <plugin>
        <groupId>org.graalvm.buildtools</groupId>
        <artifactId>native-maven-plugin</artifactId>
    </plugin>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
</plugins>

执行:

springboot-aotnative:build 即可 img.png

msvc

windows 环境需要安装 c++ img.png

jasypt

config

duckdb

duckdb_jdbc 目前不支持 native image, DuckDB 的 Java 代码通过 JNI 与 C++ 交互时会使用**反射(Reflection)**机制。 GraalVM 需要JNI 配置元数据(JSON 文件)来知道哪些 C++ 函数和 Java 方法之间存在 JNI 调用。 由于 DuckDB 驱动程序尚未完全集成这些必要的 GraalVM 配置,因此在编译时,GraalVM 无法创建正确的连接代码,导致运行时出现致命错误。