Непрерывная Java <-> Python связь с подпроцессом застряла - PullRequest
0 голосов
/ 20 апреля 2020

У меня проблемы с настройкой механизма межпроцессного взаимодействия между моим основным Java приложением и Python «вспомогательным» скриптом. С фрагментом Java я пропустил контекстный код и инициализацию. Фрагмент Java, который имеет дело с процессом, а stdin и stdout работает в отдельном потоке.

Если бы я запустил это, ничего не было бы напечатано в моем приложении Java. Если бы я сделал сценарий Python нерекурсивным (удалив внутренний вызов readInput ()), мое приложение Java напечатало бы «test only!» Один раз.

Примечание: просто запустите python Процесс снова и снова решит мою проблему. Инициализация моего Python скрипта занимает много времени, что означает, что я хочу, чтобы он загружался один раз, а не для каждой итерации l oop.

My * Сценарий 1022 * выглядит следующим образом:

import sys

def readInput():
    line = sys.stdin.readline()
    line.rstrip('\n')

    if("test" in line):
        print("Test too!")

    readInput()

readInput()

Фрагмент Java, который связывается с этим, находится внутри некоторого времени l oop и выглядит следующим образом

printWriter.println("test");
printWriter.flush();
String line;
while ((line = bufferedReader.readLine()) != null) {
    System.out.println("Line: " + line);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...