Java Межпроцессное взаимодействие - PullRequest
2 голосов
/ 01 февраля 2012

Добрый день Всем, у меня есть программа (давайте назовем ее 'A'), которая вызывается из сценария ANT с использованием java. Эта программа использует Runtime.getRunTime.exec("batFile.bat"). Файл .bat, в свою очередь, вызывает другой файл Java (назовем его 'B'). Теперь возникает проблема.

Есть ли способ, которым B может получить доступ к переменной экземпляра A?

Ответы [ 2 ]

5 голосов
/ 01 февраля 2012

Нет. Потому что файл .bat создает новый процесс jvm. Может быть, вы хотите использовать БД для обмена данными.

4 голосов
/ 01 февраля 2012

Если вам известно значение переменной в процессе A до того, как он запустит процесс B, вы можете поделиться этим значением несколькими способами.

Передать его в качестве аргумента командной строки, например:

String[] cmd = {"batFile.bat", variableValue};
Runtime.getRunTime.exec(cmd);

Установите его как переменную в среде процесса B, например:

String cmd = "batFile.bat";
String[] envp = {"VARIABLE="+variableValue};
Runtime.getRunTime.exec(cmd, envp);

Записать значение в файл в процессе A, прочитать файл в процессе B.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...