有 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/