Project Panama 与 Foreign Function & Memory API
Project Panama 是 OpenJDK 下的长期项目,目标是在 JVM 与 C 等本地代码之间建立更安全、更符合 Java 习惯互操作层。其交付物中最核心、与 JNI 直接对标的是 Foreign Function & Memory API(下称 FFM API,包名 java.lang.foreign),在 JDK 22 随 JEP 454 正式定稿。 发音:英语读作 /ˈpænəmɑː/,音节大致为「帕-nuh-马」,与中美洲国家 Panama(巴拿马)相同。OpenJDK 以地峡(isthmus)比喻 JVM 与本地代码之间的桥梁,故取此名。 本文说明 Panama 解决什么问题、核心概念怎么用,以及与 JNI 的取舍。JDK 版本层面的变更见 JDK 21 升级到 JDK 25 的变更汇总。 Panama 是什么 Project Panama 不只 FFM API,还包括: 组件 作用 Foreign Function & Memory API 调用 C 函数、读写堆外内存 Vector API SIMD 向量计算(另一 JEP 线,本文不展开) jextract 从 C 头文件生成 Java 绑定 日常说的「用 Panama 替代 JNI」,通常指 FFM API:用纯 Java + 标准库完成原本需要 native 方法、javah 头文件和 C/C++ 胶水代码的工作。 ...