前端Java,后端c++,如何加入

Front end Java, back end C++ , how to join?

本文关键字:何加入 c++ 后端 Java 前端      更新时间:2023-10-16

让我们给出一个非常基本的例子,我有一个程序,它遍历一个目录并获取该目录中的文件列表。为了讨论的缘故,假设这必须在c++中完成。然后,我希望使用Java Swing展示文件列表。

这是怎么做的?

您可以让您的c++程序写入标准输出,然后您的Java程序可以从中读取。你可以让你的Java前端执行你的c++后端,然后读取结果。

本文是关于如何使用stdout/stderr的一个很好的信息来源。

可以通过Java本机接口(Java Native Interface, JNI)实现。Oracle有官方指南,但你可能会发现谷歌更容易找到教程。

一个基本的方法是将c++的输出存储在一个文本文件中,然后从java中读取。

c++程序将列表放在一个特定的文件中,Java程序读取该文件?另一种方法可能是使用套接字(我不太了解Java,不知道它的IPC可能性)在程序之间"实时"通信。

最后,如果您必须同时使用c++和Swing,那么您无法在一个程序中完成。

按照Kevin的建议使用Java Native Interface (JNI)。或者,如果您需要在Java &在c++中,您需要将对象从运行c++代码的进程序列化到JVM进程。

你也可以在Dr. Dobb 1998年的文章中找到一些用处。