Aplicativos e getRuntime

Estou fazendo uma interface para um aplicativo escrito em C++. Escrevi um conjunto de shell scripts que funcionam perfeitamente. Uso o método getRuntime para executar os scripts. A ação abaixo (descrita em código) será executada ao clique do botão que eu chamei de RUN.

try {
Process p = Runtime.getRuntime().exec(“step1.sh”);
BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null){
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}

Minha dúvida é a seguinte:

(1) Eu percebi que este script roda no home mesmo quando eu indico o caminho correto de onde ele deve rodar. Por exemplo: /home/anderson/TESTE/step1.sh, como corrigir isto?

(2) Eu gostaria que o log file que este programa gera fosse exibido em uma janela da minha interface e que fosse atualizando como faz no terminal. Qual método eu uso?

Vamos lá feras, ajudem-me.

Obrigado,

Ola,

  1. ele vai ser executado onde vc chama, tipo, se vc chama-lo do diretorio /home/anderson, é este que vai valer para ele…

  2. quando vc mandar executar, pegue o java.lang.Process, e dele vc tem o output, input e o error stream, para vc ter a iteração com o processo, assim vc tem a saida que seria impresso no prompt.