Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby与java的通信_Java_Ruby - Fatal编程技术网

ruby与java的通信

ruby与java的通信,java,ruby,Java,Ruby,我目前正在为3d绘图应用程序编写ruby插件(用c++编写,ruby是它的脚本语言)。 我想做的是在它和另一个用java编写的应用程序之间进行通信,这两个程序都在同一台计算机上运行。 集成到3d绘图应用程序中的ruby版本相当精简,非常基本,据我所知,socket库相当有限或不存在 如果您对如何在两个应用程序之间交换信息有任何想法,我们将不胜感激 交换的信息量将非常小。如果不需要高性能,您可以使用计算机磁盘上的文件在两个应用程序之间更改信息 例如,如果要将EVENT1从Ruby应用程序传输到Ja

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

如果您对如何在两个应用程序之间交换信息有任何想法,我们将不胜感激


交换的信息量将非常小。

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

您的问题可能会以多种方式得到回答。有这么多可能的解决方案

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

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

您的Ruby程序以这种方式调用,只需从
STDIN
读取,然后写入
STDOUT
(可以使用普通方法
get
put


你还没有说你在什么系统上编程,所以我不确定你的平台是否能够处理这种重定向,或者(这将是第二个简单的解决方案)。

套接字、文件、数据库……Windows和Mac OS。老实说,我在编程方面几乎是自学成才的,所以我对shell的知识,管道等基本上是不存在的。我正在考虑只将信息输出到文本文件或内存(可能不是正确的术语),而不是通过命令行让ruby或java知道新信息已经创建并以这种方式交换信息。我不确定你的意思,但我的建议不是关于命令行参数。一个项目刚开始另一个项目,然后他们就一起工作,可能持续一周或更长时间。从技术上讲,我的解决方案类似于通过文件交换信息,但您不需要考虑该文件的名称。在文件系统中创建一个文件可能是一个好主意,但是您还应该决定如何处理“不断增长”的文件—它最终可能会填满您所有的磁盘空间。我喜欢你自学成才;-)