Как мы можем инициировать два экземпляра одного и того же класса Java в двух разных процессах? - PullRequest
0 голосов
/ 13 декабря 2018

Я создаю класс 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 = new ProcessBuilder (некоторые команды) .start;

Как это можно сделатьМожно ли создать экземпляры в двух разных процессах?

Я упомянул несколько потоков, связанных с созданием этого Процесса, но ни один из них не имеет решения для моего требования.

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 13 декабря 2018

ProcessBuilder помогает запустить новый процесс.Команда, которую вы даете, очень похожа на то, что вы вводите в командной строке.Если это Java-приложение, вы должны использовать что-то вроде 'java -jar mayapp.jar'.После запуска приложения оно будет запущено в отдельном процессе, а также в отдельной JVM (если это Java-приложение).Если вам нужно связаться с этим отдельным процессом после того, как вы запустили его, есть несколько вариантов, включая.

  • Вызов метода Java Remote (RMI)
  • Служба сообщений Java (JMS)
  • HTTP с использованием Restful вызовов

Есть многопримеров использования этих технологий, так что посмотрите.

...