前端Java,后端C ++,如何加入?

时间:2011-11-24 04:40:37

标签: java c++

让我们给出一个过于基本的例子,我有一个程序通过一个目录并抓取目录中的文件列表。为了论证,假设这个HAS是用C ++完成的。然后我希望使用Java Swing呈现文件列表?

这是怎么做到的?

5 个答案:

答案 0 :(得分:4)

您可以将您的C ++程序写入Stdout,然后您的Java程序可以从中读取。然后,您可以让Java前端执行C ++后端,然后读取结果。

This Article是有关如何使用stdout / stderr的良好信息来源。

答案 1 :(得分:2)

您可以通过Java Native Interface (JNI)完成此操作。 Oracle有一个official guide,但您可能会发现谷歌更容易获得教程。

答案 2 :(得分:1)

一种基本方法是将c ++输出存储在文本文件中并从java中读取。

答案 3 :(得分:1)

C ++程序将列表放在特定文件中,Java程序是否读取该文件? 另一种方法可能是使用套接字(我不太了解Java以了解它的IPC可能性)来在“实时”程序之间进行通信。

最后,如果你必须同时使用C ++和Swing,那么就不能在一个程序中完成它。

答案 4 :(得分:0)

使用Java本机接口(JNI),如Kevin建议的那样。或者,如果您需要在Java和Java之间建立流程边界。 C ++,您需要将运行C ++代码的进程中的对象序列化为JVM进程。

此外,您可能会在此Dr. Dobb's article from 1998中找到一些用途。