我想制作两个节目。其中程序1将具有静态集合,而某些getter / setter则用于访问/更新其值。
我希望程序2能够访问/调用program1的getter / setter。这样静态集合可以在许多程序/进程之间共享
* 我不想参与任何端口。
答案 0 :(得分:6)
你不能只声明一个变量静态(或超静态)并期望它在你的程序之外的代码中可用 - 它只是不起作用。您需要的是某种进程间通信,可能性是无穷无尽的。仅举几例: - 对文件(本地或网络)进行序列化/反序列化 - 套接字(基本上,你打开localhost上两个端口之间的网络连接) - 一个数据库 - 共享内存(这是否可行取决于操作系统) 您选择的操作系统可能提供其他方法,但原则保持不变:每当变量发生变化时,一个应用程序需要通知另一个。
答案 1 :(得分:1)
这不能仅使用静态变量来完成。它们可以在程序运行的JVM中的任何位置访问,但不能那么简单地访问它们。使用RMI,套接字或输入流来处理此进程间通信。
答案 2 :(得分:1)
没有严格的方法可以做到这一点。 RMI或CORBA应该可行。但这将是一个过度杀伤力。您可以使用普通的旧套接字在Java应用程序之间进行通信。或者使用java.nio频道。