版本
- 适用于 JDK 24 的 GraalVM(最新)
- 适用于 JDK 25 的 GraalVM(早期访问)
- 适用于 JDK 21 的 GraalVM
- 适用于 JDK 17 的 GraalVM
- 存档
- 开发构建
与原生代码的互操作性
您可以使用原生镜像 (Native Image) 将 Java 代码转换为原生共享库,并从原生 (C/C++) 应用程序中像调用任何 C 函数一样调用它。有以下两种机制可以调用原生编译的 Java 方法:
- JNI Invocation API,一个用于将 JVM 加载到任意原生应用程序中的 API。使用 JNI Invocation API 的优势在于它支持在同一进程中存在多个独立的执行环境。
- Native Image C API,一个针对 GraalVM 原生镜像的 API。使用 Native Image C API 的优势在于您可以决定您的 API 将是什么样子,但参数和返回类型必须是非对象类型。
相关文档 #
- 原生镜像中的外部函数和内存 API
- 原生镜像上的 Java 原生接口 (JNI)
- JNI Invocation API
- 原生镜像 C API
- 构建原生共享库
- 嵌入 Truffle 语言——Kevin Menard 的一篇博客文章,他在其中比较了原生镜像中用于公开 Java 方法的两种机制。