En Java, envíe comandos a otro programa de línea de comandos

Estoy usando Java en Windows XP y quiero poder enviar comandos a otro programa como telnet. No quiero simplemente ejecutar otro programa. Quiero ejecutarlo y luego enviarle una secuencia de comandos una vez que se esté ejecutando. Aquí está mi código de lo que quiero hacer, pero no funciona: (Si descomenta y cambia el comando a "cmd", funciona como se esperaba. Por favor, ayuda.) Este es un ejemplo simplificado. En producción habrá muchos más comandos enviados, así quepor favor no sugiera llamar a "telnet localhost".

    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();
    }

Respuestas a la pregunta(4)

Su respuesta a la pregunta