Executando tarefas em um Process aberto

Ae galera!

Criei uma instancia de Process q está executando um prompt do windows (CMD.exe) e envio os comandos q quero q ele execute pra mim através de OutputStream de Process. A intenção é deixar aberto esse processo e receber os comandos para que sejam executados. Assim eu não preciso criar vários Process de CMD. Naverdade estou fazendo um teste, não é exatamente o CMD q vou utilizar, e sim, um programa da empresa, portando isso é só um exemplo.

Criei essa classe:

[code]public class SystemInstance {
private Process process;
private PrintStream input;
private InputStream output;

public SystemInstance( Process process ) {
    this.process = process;
    this.input = new PrintStream( process.getOutputStream() );
    this.output = process.getInputStream();
}

//executa a message
public void systemInput( String message ) {
    input.println( message );
    input.flush();
}

//pega o resultado da message executada
public String systemOutput() {
    try {
        byte[] buffer = new byte[output.available()];
        int out = output.read( buffer );
        return new String( buffer );
    } catch( Exception e ) {
        e.printStackTrace();
        return null;
    }
}

public void destroy() {
    this.process.destroy();
}

}[/code]

Então, estou trabalhando com ela dessa forma:

[code] …

Process p = Runtime.getRuntime().exec( "CMD.exe" );
SystemInstance si = new SystemInstance( p );

//Neste trecho do programa ele recebe a message que será executada e repassa ao processo CMD q está livre para ser executado
System.out.println( "PERFORM: " + message  ); 
    
//executa a message
si.systemInput( message );

//mostra o resultado da message executada
System.out.println( si.systemOutput() );


[/code]

Acontece q qd envio a primeira mensagem, a segunda, a terceira, ele executa normal e do nada ele para de executar as outras mensagens q envio, o processo continua aberto, mas ele não executa mais nada. As vezes ele para de executar dependendo da mensagem q executo, por exemplo se envio a mensagem “dir/s” a próximas mensagem não são mais executadas.

Parece q o flush de PrintStream não está executando, ou se está executando, de alguma forma o CMD não está entendendo a mensagem e não reconhece o comando.

Enfim, o q pode estar acontecendo?

Valew!