0

I'm trying to launch a process in java, read the output, write to the program, then read what it responds with. From all the other answers on SO, this is what I have come up with:

class Main
{
    public static void main(String[] args) {
        String line = "";
        try {
            ProcessBuilder pb = new ProcessBuilder("C:\\myProgram.exe");
            Process p = pb.start();
            BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
            BufferedWriter output = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
            while ((line = input.readLine()) != null) {
                System.out.println(line);
            }

            output.write("foo");
            output.newLine();
            output.flush();

            while ((line = input.readLine()) != null) {
                System.out.println(line);
            }

            p.destroy();
        }
        catch (IOException e){
        }
    }
}

It launches the program, and gives me the output just as expected.

When i write foo, I expect the program to come back with another response, but it never does.

What am I doing wrong?

4

0 回答 0