java - 2个本地Java应用程序如何交互?

标签 java

有 2 个裸控制台 Java 应用程序同时在同一台机器上运行我想要,例如,像 friend.println(String s) 我的第一个应用程序导致第二个app 将 s 输出到它的 stdout(而第一个 app stdout 中将保持静音)。

如何实现?

最佳答案

你必须以某种方式在两者之间传递信息。由于它们不会都在同一个 JVM 中运行,因此您必须使用可以在机器上的不同进程之间进行通信的通信介质。

你可以:

  • Use RabbitMQ (可以找到教程 here )
  • Use RMI
  • 管道输出 from one to the other
  • 共享文件访问:让 app2 监控 app1 写入的文件,并对文件中的任何新条目使用react
  • 使用网络sockets : 让 app2 使网络套接字可用于接收来自 app1 的通信(通过连接到 localhost)

您选择哪一个实际上取决于您想要完成什么,以及您需要它的复杂程度。每种方法都有优点/缺点。例如,某些并发/基于文件的选项可能会产生死锁,但这些选择中的任何一个都应该提供一种可行的方法来完成您所描述的内容。如果您不熟悉某些技术,那么这些技术的学习曲线并不难。

关于java - 2个本地Java应用程序如何交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7986872/

相关文章:

java - 使图像背景成为整个背景

java.lang.reflect.InitationTargetException?

java - 对创建工作表感到困惑

java - 如何使用hadoop配置Nut 1.4?

java - ksoap2 android web 服务 复杂类型 byte[]

java - Spring Cloud Stream - 应用程序初始化后发送消息

java - 如何使用 Java MongoDB 驱动程序使用正则表达式和复杂条件对集合进行代码查找?

java - 打印出 ArrayList 中最大的数

Java 不可变对象(immutable对象)

java - 将文本框宽度设置为剩余宽度