java - C# 进程读取 java 进程的输出流,而不使用套接字、IDL/CORBA、文件、数据库或 JNI

标签 java c# service communication

我需要向我的 Web 应用程序添加一项服务,该服务从命令行打开 java 进程,并通过该 jvm 线程的输入/输出流进行通信,而不是使用 IDL 或套接字或数据库或文件。进程之间是否有这样的联系,很接近纯java?

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

仅与字符串进行通信就可以,但使用对象本身会更好。

最佳答案

this我演示了在 executiable-jar(STW 应用程序)和 Winform 之间使用 stdin/out 进行 IPC 的方法应用程序。

答案已链接到解决方案 I made .

要读取和写入应用程序,您可以使用以下方法:WriteLineOutputDataReceived(Process 方法, see this class )。

Java 进程中,您使用 Scanner 进行读取,使用 Println 进行写入。( this is the java class )

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

关于java - C# 进程读取 java 进程的输出流,而不使用套接字、IDL/CORBA、文件、数据库或 JNI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31686747/

相关文章:

java - Fedora 上 TomCat 中的 struts 2 NoSuchFieldError 原型(prototype)

java - 如何直接从 Java 调用 Clojure 函数

c# - 在 NLog 中选择自定义日志级别

c# - 从 C# SyndicationFeed 读取所有 rss 项目

android - IntentService 工作队列状态

delphi - 从Windows应用程序向服务应用程序发送大量数据

java - 从 firebase 实时数据库中删除 android 中的 ListView 项目

java - 线程 "main"java.lang.NoClassDefFoundError : java/util/function/Predicate 中的异常

c# - 使用 Asp.net mvc 或 web 服务会更好吗?

android - 静态 BroadcastReceiver 未收到自定义 Intent