我如何在JVM中利用C++代码

How can I leverage C++ code in the JVM?

本文关键字:C++ 代码 JVM      更新时间:2023-10-16

我正在处理一个用C++构建的项目。在这个项目中是包含公共方法的公共类,我想从Java代码中调用这些方法。实现这一点的最佳方法是什么?我想我会想要一些能把C++代码编译成字节码的东西。

我见过一些这样的工具,但其中一些工具已经很长时间没有更新了,还有一些似乎不适合执行任务。这些工具是否足够成熟,可以用于专业级应用程序?尽管开源更可取,但我同样愿意考虑商业工具。

我目前正在使用一个名为javacpp的包。我认为值得一看

总是有旧的备用JNI,它以速度慢和难以使用而闻名。

JNA是我个人从未使用过的东西,但"我听到了好消息",看起来它可能符合你的要求。

另一种可能更好的方法是将C++代码重组为侦听TCP或UNIX套接字的服务。这将增加可移植性,使从大多数语言连接到它成为可能,并且不是Java特有的。

使用JNI(Java Native Interface)将C++桥接到Java实际上非常容易。不利的一面是,您需要为您希望代码使用的平台编译C++部分。

我在这篇文章中有一个从C++调用Java的例子。C++能调用Java代码吗?但是从Java调用C++是非常相似的。