2015-04-05 41 views
0

我试图执行以下操作: 使用Java计算某些内容并将值返回给Fortran。 我实现它使用JNI和顺序如下:JNI vs JNA,从Fortran95调用Java

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

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

才能实现这一目标用JNA?如果是这样,有什么优势?

回答

0

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

了JNI的JNA的优点:

  • 发展速度您不必配置或编译任何本地代码,它可以显著加快你的开发/构建周期。
  • 清晰 JNA的映射看起来就像你会在本机代码中调用该函数,但你得到使用,而不是翻译的Java到C/JNI的Java语义,然后C/JNI到周围的Fortran
  • 适当的包装
  • 代码成熟度 JNA已经制定了管理本地界面的细节和细节,因此您可以专注于解决您的实际问题,而不是进行管道安装。不过,如果你做水暖,JNI总是在那里。
+1

JNA的缺点是速度快。它比JNI慢很多。即使在3GHz的Xeon上也很明显。 – cup 2015-04-09 18:19:29