在同一台计算机上同时运行2个裸机控制台Java应用程序,例如friend.println(String s)
我的第一个应用程序,导致第二个应用程序输出s
到它的标准输出(虽然在第一个应用标准输出中有静音)。
如何实现这个?
答案 0 :(得分:2)
使用套接字,管道,共享内存或其他东西建立连接(可能使用JRMI)。为他们设计协议和/或API进行通信,定义println服务,让一个应用程序调用另一个。
答案 1 :(得分:2)
你必须以某种方式在两者之间传递消息。由于它们不会同时在同一个JVM中运行,因此您必须使用可以在计算机上的不同进程之间进行通信的通信介质。
你可以:
app2
监控app1
写入的文件,并对该文件中的任何新条目作出反应app2
让网络套接字可用于接收来自app1
的通信(通过连接到localhost
)您选择哪一个取决于您想要完成的任务,以及您需要的复杂程度。每种方法都有利弊。例如,某些并发/基于文件的选项可能会产生死锁,但这些选项中的任何一个都应该提供一种可行的方法来完成您描述的内容。如果你不熟悉这些技术的学习曲线并不太难。
答案 2 :(得分:0)
答案 3 :(得分:0)
以下是我能想到的一些方法:
可能所有使用JMS都是最好的。
答案 4 :(得分:0)
最简单的可能是Java RMI。
最强大的是通过TCP / IP的自定义协议。