Установите стандартный выходной обмен данными между Java-приложением и внешней программой без его запуска.
Я пытаюсь найти способ установить связь на основе stdout между моей Java-программой (шахматный движок) и внешней программой (шахматный интерфейс). Важно отметить, что внешняя программа запускает мое java-приложение с небольшим bash-скриптом, выполняющим файл.jar. Приложение java должно иметь возможность отправлять команды внешней программе через стандартный вывод. На данный момент работает только связь с внешней программой на Java. Вот что я попробовал:
try {
log = new FileWriter("log.txt");
} catch (IOException e) {
System.out.println("IOException on initializing FileWriter 'log'.");
}
while (true) {
try {
stringInput = input.readLine();
} catch (IOException ex) {
System.out.println("IOException on reading Buffered Reader 'input'.");
}
if (stringInput != null){
try {
log.write(stringInput + "\n");
} catch (IOException ex){
System.out.println("IOException on writing to FileWriter 'log'.");
}
switch (stringInput){
case "uci\n":
System.out.println("uciok");
break;
}
} else {
break;
}
}
Я ожидаю, что java-программа будет хранить входящие команды в файле log.txt, в то время как я должна иметь возможность видеть команды, поступающие из java-приложения, в консоли отладки внешней программы.
log.txt действительно хранит входящие команды. Там нет никаких следов вывода из java-приложения, полученного внешней программой, хотя.