JNI 与 JNA,从 Fortran95 调用 Java

JNI vs JNA, calling Java from Fortran95

我正在尝试执行以下操作: 将 Java 和 return 中的值计算为 Fortran。 我是用JNI实现的,顺序如下:

Fortran 95 -> C -> Java (Computes something)

 Java (returns value to Fortran 95) -> C -> Fortran95

可以使用JNA实现吗?如果有,有什么优势?

Fortan 的共享库与 C 兼容,因此 JNA 应该能够访问任何导出的接口,包括那些具有回调输入的接口。

JNA 相对于 JNI 的优势:

  • 开发速度您无需配置或编译任何本机代码,这可以显着加快您的development/build周期。
  • Clarity JNA 的映射看起来就像您在本机代码中调用的函数,但您可以使用 Java 语义而不是翻译 Java 进入 C/JNI,然后 C/JNI 进入适当的 Fortran
  • 包装器
  • 代码的成熟度 JNA 已经解决了管理本机接口的陷阱和细节,因此您可以专注于解决您的实际问题,而不是做管道。但是,如果您喜欢做管道,JNI 总是在那里。