Java + Shell script

3 respostas
A

Olá,
gostaria de saber se é possível chamar um script dentro do programa java e, além disso, conseguir capturar a string que este script retorna. :eek:

3 Respostas

F

Usa a classe runtime para executar.

Runtime.getRuntime().exec("/tmp/run.sh");

Isso ira te retornar um

java.lang.Process

Onde tu pode pegar as tres streams que tu precisa, output, input e error.

A

Valeu!!! Testei agora no windows e funcionou ao chamar um .bat, só que ao chamar um comando, como um “dir”, dá um erro java.io.IOException: CreateProcess: dir error=2 na primeira linha. Este método não consegue capturar o resultado de um comando? Segue abaixo o código:

try {
        Process child = Runtime.getRuntime().exec("dir");
        InputStream in = child.getInputStream();
        int c;
        while ((c = in.read()) != -1) {
            System.out.print((char)c);
        }
        in.close();
    } 
    catch (IOException e) {
      e.printStackTrace();
    }
F

Pois eh… acho q ele nao consegue executar um comando como o dir, pois o dir nao eh um programa… mas nao tenho certeza… talvez alguem saiba ai…

Mas para fazer um ‘dir’ tu pode usar

File.list()

Da uma olhada em
http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html#list()

Criado 25 de outubro de 2006
Ultima resposta 26 de out. de 2006
Respostas 3
Participantes 2