c#进程读取java进程'输出流而不使用套接字或IDL/CORBA或文件或数据库或JNI

本文关键字:进程 IDL 套接字 文件 JNI 数据库 CORBA java 读取 输出流 | 更新日期: 2023-09-27 18:05:17

我需要添加一个服务到我的web应用程序,它从命令行打开java进程,并通过该jvm线程的输入/输出流进行通信,而不是使用IDL或套接字或数据库或文件。进程之间是否存在这种非常接近纯java的连接?

c# webserver打开helloworld.jar并向控制台(console.in)写入1M字节,然后等待console.out。我听说命令行参数不能超过千字节级别。如果有这样的通信,也许流可以达到兆字节?

只与字符串通信是可以的,但是使用对象本身会更好。

c#进程读取java进程'输出流而不使用套接字或IDL/CORBA或文件或数据库或JNI

在这个答案中,我演示了在executiable-jar (STW应用程序)和Winform应用程序之间使用stdin/out来实现IPC的方法。

答案与我提出的解决方案相关联。

要对应用程序进行读写操作,可以使用WriteLineOutputDataReceived方法(Process方法,参见本类)。

Java进程中,使用Scanner进行读取,使用Println进行写入。(这是Java类)

通过字符串进行通信。您可以将对象序列化为json,然后传递它们。(使用Json.netGson)