我目前正在为 3D 绘图应用程序编写一个 ruby 插件(用 c++ 编写,ruby 是它的脚本语言)。 我想做的是在该应用程序和另一个用java编写的应用程序之间进行通信,这两个程序都在同一台计算机上运行。 集成到 3D 绘图应用程序中的 ruby 版本相当精简且非常基本,据我所知,套接字库相当有限或不存在。
任何关于如何在两个应用程序之间交换信息的想法将不胜感激。
将交换的信息量相当小。
最佳答案
您的问题可以通过多种方式得到解答。有很多可能的解决方案...
我想到的最简单但相当有效的方法之一是使用 standard input and standard output redirection 在程序之间进行通信(用任何语言编写)。
您的 Java 程序需要执行 Ruby 程序,重定向输入/输出流。我不知道在 Java 中用于此任务的函数,但在 Ruby 中该方法是 IO.popen(command,mode)。
您的 Ruby 程序,以这种方式调用,只需从 STDIN
读取并写入 STDOUT
(普通方法 gets
和 可以使用puts
)。
你还没有说你在什么系统上编程,所以我不确定你的平台是否能够处理这样的重定向,或者 names pipes (这将是第二个简单的解决方案)。
关于java - ruby 和 java 之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9817220/