从Java调用Fortran子程序

6

我有一个用Fortran编写的庞大子程序,需要在Java程序中调用。我该如何调用?我的操作系统是ubuntu 10.04。


1
这是平台相关的。你可能想在你的问题中添加额外的信息。 - Thorbjørn Ravn Andersen
2个回答

4
请看这篇文档,它详细介绍了如何将本地代码(Fortran/C)与Java集成。当然,结果会依赖于平台。

4
@extraneon提到的那篇论文是我几年前将Fortran子程序集成到Java程序中的方法。但是,如果我今天再次尝试这样做,我会研究一下Fortran 2003标准中定义的并由某些编译器的最新版本实现的与C的互操作性功能。我希望我能将Fortran子程序编译成类似于C语言的形式,以便JNI使用。这样,您就可以省略C包装器。
如果您的编译器不实现与C的互操作性功能,请放弃并获取支持此功能的编译器。
另一个想法浮现在我脑海中:如果Fortran子程序执行时间很长,您应该考虑通过让Java将一些输入数据放入文件中,并修改Fortran从文件中获取其输入来将其与Java集成。然后,Java程序可以调用系统启动Fortran。以相同的方式传回结果。这是一个真正的补救措施,但您可能会发现它比通过JNI和互操作性等实现更容易。此外,您可以将其实现为过渡方案,同时解决JNI和互操作性等问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接