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。我听说命令行参数不能超过千字节级别。如果有这样的通信,也许流可以达到兆字节?
只与字符串通信是可以的,但是使用对象本身会更好。
在这个答案中,我演示了在executiable-jar
(STW
应用程序)和Winform
应用程序之间使用stdin/out来实现IPC
的方法。
答案与我提出的解决方案相关联。
要对应用程序进行读写操作,可以使用WriteLine
和OutputDataReceived
方法(Process
方法,参见本类)。
在Java
进程中,使用Scanner
进行读取,使用Println
进行写入。(这是Java类)
通过字符串进行通信。您可以将对象序列化为json,然后传递它们。(使用Json.net
和Gson
)