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 总是在那里。
我正在尝试执行以下操作: 将 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 总是在那里。