在ruby和java之间进行通信

时间:2012-03-22 06:03:18

标签: java ruby

我目前正在为3D绘图应用程序编写一个ruby插件(用c ++编写,ruby是它的脚本语言)。 我想要做的是在用java编写的另一个应用程序之间进行通信,两个程序都在同一台计算机上运行。 集成到3d绘图应用程序中的ruby版本相当简洁,非常基础,据我所知,它具有相当有限或不存在的套接字库。

非常感谢有关如何在两个应用程序之间交换信息的任何想法。

将要交换的信息量相当小。

2 个答案:

答案 0 :(得分:2)

您的问题可以通过多种方式得到解答。有很多可能的解决方案......

我想到的一种最简单但又非常有效的方法是使用 standard input and standard output redirection 在程序之间进行通信(用任何语言编写)

您的Java程序需要执行Ruby程序,重定向输入/输出流。我不知道Java中用于此任务的函数,但在Ruby中,该方法是IO.popen(command,mode)

您的Ruby程序,以这种方式调用,只读取STDIN并写入STDOUT (可以使用普通方法getsputs

您还没有说过您正在编写什么系统,所以我不确定您的平台是否能够处理此类重定向,或 names pipes (这将是

答案 1 :(得分:0)

如果性能不高,则可以使用计算机磁盘上的文件来更改两个应用程序之间的信息。 例如,如果要将EVENT1从Ruby应用程序传输到Java应用程序: Ruby应用程序在磁盘目录上写一个名为event1.flag的标志文件,而Java应用程序启动一个Thead继续在dir中搜索.flag文件。