我们如何在两个不同的进程中启动同一Java类的两个实例


我创建了一个POJO类。我想创建两个进程,在另一个类中获得POJO类的两个实例。

这两个过程应该相互沟通。

class Message {
String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}

public class Demo {
public static void main(String[] args) {
Demo  demo = new Demo();
Message initiator = null;
Message receiver = null;        
// Here is where I am stuck up. The below line is not correct
// as some command is expected here I believe.  
ProcessBuilder p1 = new ProcessBuilder(initiator).start();
// Objects initiator and receiver should be instantiated in separate
// processes and their methods should inter communicate.
// what am I doing wrong?
// Is there any other way to do this?
}
}

我试着使用ProcessBuilder、Runtime.exec和Process语法,但都提到在创建流程时使用命令

例如:

ProcessBuilder p1=新的ProcessBuilder(一些命令(.start;

如何在两个不同的过程中实现这种实例化?

我提到了几个与这个流程创建相关的线程,但没有一个能满足我的需求。

如有任何帮助,我们将不胜感激。

ProcessBuilder帮助启动一个新流程。您给它的命令与您在命令行中键入的命令大致相同。如果这是一个java应用程序,你会使用类似于"java-jarmayapp.jar"的东西。一旦应用程序启动,它将在一个单独的进程中运行,因此也将运行一个独立的JVM(如果它是一个java应用程序(。如果你需要在启动后与这个单独的流程进行沟通,那么有很多选择,包括。

  • Java远程方法调用(RMI(
  • Java消息服务(JMS(
  • 使用Restful调用的Http

有很多使用这些技术的例子,请看一看。

最新更新