小编典典

我可以在Java Web服务中使用用C编写的api吗?

java

我找到了要在Java应用程序中使用的开源库。该库是用C编写的,并且是在Unix /
Linux下开发的,我的应用程序将在Windows上运行。它是一个主要包含数学函数的库,据我所知,它不使用任何与平台相关的东西,它只是非常基本的C代码。而且,它也不大,少于5,000行。

在我的应用程序中使用库的最简单方法是什么?我知道这里有JNI,但这涉及到找到一个编译器来在Windows下编译该库,了解JNI框架的最新信息,编写代码等。可行,但并不那么容易。有更容易的方法吗?考虑到库的大小,我很想将其转换为Java。有什么工具可以帮助您吗?

编辑

最后,我将需要的库部分翻译成Java。到目前为止,它大约占库的10%,尽管它可能会随着时间的推移而增加。C和Java非常相似,因此只花了几个小时。主要困难是修复翻译错误中引入的错误。

感谢大家的帮助。提出的解决方案似乎都很有趣,当我需要链接到较大的库时,我将对其进行研究。对于一小段C代码,手动翻译是最简单的解决方案。


阅读 279

收藏
2020-11-30

共1个答案

小编典典

最好的选择可能是喝一本好书(K&R:C编程语言)喝杯茶,然后开始翻译!我对信任翻译程序会持怀疑态度,但往往不是最好的翻译员自己!如果您执行此操作,则说明已完成,而无需继续进行此操作。如果该库是开源的,可能会有些复杂,您需要仔细检查许可证。要考虑的另一点是,翻译中总会有一些风险和潜在错误,因此可能有必要考虑编写一些测试以确保翻译正确。

没有JAVA等价的Math函数吗?

正如您自己所评论的那样,JNI方法是可行的,因为对于交流编译器,您可能会使用“ Bloodshead Dev-c
++”可能有效,但在大约5000行的情况下需要付出很多努力。

2020-11-30