Java Runtime Bash

Pessoal, tenho o seguinte código para fazer do console do eclipse o próprio terminal do computador.
Para a maioria das coisas funciona perfeitamente.

public class TestBash {

	public static void main(String[] args) throws IOException,
			InterruptedException {
		String[] cmdarray = { "bash" };
		Process proc = Runtime.getRuntime().exec(cmdarray);

		StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(),
				System.err);

		StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(),
				System.out);

		StreamGobbler inputGobbler = new StreamGobbler(System.in,
				proc.getOutputStream());

		errorGobbler.start();
		outputGobbler.start();
		inputGobbler.start();

		int exitVal = proc.waitFor();
		errorGobbler.join();
		outputGobbler.join();
		System.exit(exitVal);
	}

}

class StreamGobbler extends Thread {
	InputStream is;
	OutputStream os;

	StreamGobbler(InputStream is, OutputStream os) {
		this.is = is;
		this.os = os;
	}

	public void run() {
		try {
			int c;
			while ((c = is.read()) != -1) {
				os.write(c);
				os.flush();
			}
		} catch (IOException x) {
			throw new RuntimeException(x);
		}
	}
}

São 3 Threads. Uma que fica escutando a entrada do teclado (System.in) e outras 2 que ficam escutando a saída.
Para comandos como ls, cp, cd está funcionando perfeitamente.

Eu tenho um programa (script) no computador, que quando eu executo [color=red]./programa[/color] ele mostra a página “help” do programa. Isso funciona perfeitamente via java e via terminal.

Porém ao executar executo [color=red]./programa -u user:pass[/color] ele deveria exibe uma mensagem de boas vinda e listar alguns comandos que aquele script pode realizar (/L, /S /C, etc).
Via terminal funciona perfeitamente, porém via console do java não.

No terminal a shell muda quando eu executo o programa (Exemplo)

[quote]MacBook-Pro pedrofialho$ ./programa -u user:pass
Welcome Pedro

Type /help for available commands

[waiting]:[/quote]

Então aparentemente está sendo gerado um processo filho dentro do processo no qual o InputStream não está conseguindo captar os dados.

Alguém tem alguma sugestão?

PS.: Se eu executar via console em vez de eclipse usando
javac MeuPrograma.java
java MeuPrograma
./programa -u user:pass

Ele fica parado aqui. Quando eu dou ctrl C para matar o processo, ele exibe as mensagens de boa vindas (que eu quero ver) antes de sair.