In Java, send commands to another command-line program
- by bradvido
I am using Java on Windows XP and want to be able to send commands to another program such as telnet.
I do not want to simply execute another program. I want to execute it, and then send it a sequence of commands once it's running.
Here's my code of what I want to do, but it does not work:
(If you uncomment and change the command to "cmd" it works as expected.  Please help.)
    try
    {
        Runtime rt = Runtime.getRuntime();
        String command = "telnet";
        //command = "cmd";
        Process pr = rt.exec(command);
        BufferedReader processOutput = new BufferedReader(new InputStreamReader(pr.getInputStream()));
        BufferedWriter processInput = new BufferedWriter(new OutputStreamWriter(pr.getOutputStream()));
        String commandToSend = "open localhost\n";
        //commandToSend = "dir\n" + "exit\n";
        processInput.write(commandToSend);
        processInput.flush();
        int lineCounter = 0;
        while(true)
        {
            String line = processOutput.readLine();
            if(line == null) break;
            System.out.println(++lineCounter + ": " + line);
        }
        processInput.close();
        processOutput.close();
        pr.waitFor();
    }
    catch(Exception x)
    {
        x.printStackTrace();
    }