JNI vs JNA,从Fortran95调用Java

时间:2015-04-05 19:36:21

标签: java java-native-interface fortran jna

我正在尝试实施以下内容: 用Java计算一些东西并将值返回给Fortran。 我使用JNI实现它,序列如下:

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

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

可以使用JNA来实现吗?如果是这样,有什么好处?

1 个答案:

答案 0 :(得分:0)

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

JNA优于JNI的优势:

  • 开发速度您不必配置或编译任何本机代码,这可以显着加快您的开发/构建周期。
  • 清晰度 JNA的映射看起来就像您在本机代码中调用的函数一样,但您可以使用Java语义而不是将Java转换为C / JNI,并且然后将C / JNI纳入Fortran的适当包装器
  • 代码的成熟度 JNA已经解决了管理本机界面的问题和细节,因此您可以专注于解决您的实际问题,而不是进行管道工作。但是,如果你喜欢做管道工程,那么JNI总是在那里。