java — принудительно вводит данные через STDIN / STDOUT, используя переполнение стека

Я написал небольшое приложение на Java и скрипт на php. Я в основном пытаюсь автоматически заполнить приглашение с помощью php при запуске функции proc_open ().

Вот моя Java:

public class InputTester {
public static void main(String[] args){
System.out.println("Output line");
String said = System.console().readLine("Say Something:");
System.out.println("You said: " + said);
}
}

И вот PHP, который я пытаюсь использовать для запуска:

<?php
$error_output_file = "/tmp/error-output.txt";

$command = "java -jar InputTester.jar";
$descriptorspec = array(
0 => array("pipe", "r"), //stdin
1 => array("pipe", "w"), //stdout
2 => array("file", $error_output_file, "a") //stderr
);
$proc = proc_open($command, $descriptorspec, $pipes);
if (is_resource($proc)) while ($s = fgets($pipes[1])) {
echo $s;
if(strpos($s, "Something:")) fwrite($pipes[0], 'the thing');
}
?>

Но когда я бегу
php input_tester.php

Все, что я получаю, это:
Выходная строка

а потом закрывается. Кто-нибудь знает почему? ..

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]