在 Java 中包装 C++ 模块

Wrapping C++ modules in Java

我继承了一个项目,最初是在C++中编写的。 由于实现要求,我需要用基于 JVM 的语言重新编写项目,例如 JavaKotlin,或者简单地将现有代码包装在 Java 或 [=13] 中=] (RESTful) API.

现有代码库还与非常旧的网络模拟框架纠缠在一起。 因此,我非常倾向于解开模拟框架并使用 JNISWIG 之类的东西包装 C++ 代码以在非模拟环境。

我想知道 JNISWIG 是否仍然是可用的最佳选择?

任何建议将不胜感激!

使用 JNI(或 SWIG)包装需要 API 的巧妙定义。看到一个很好的解释 here。有一些 C++ 框架可以使 C++ 端的 JNI 操作更容易,在您对引用管理投入过多之前,请尽早考虑它们。根据您所写的内容,可能还需要提供一些 Java 接口 below C++ 层,例如我们在 Android 上使用 Java 网络 APIs,甚至来自 C++ 代码。