Rodar Terminal dentro do JAVA [RESOLVIDO]

3 respostas
R

Bom dia pessoal.
Estou com o seguinte problema, eu preciso fazer uma aplicação que:

  1. Execute um aplicativo feito em C;
  2. Este aplicativo será debugado pelo Valgrind (o valgrind verifica a utilização da memória, se foi feita uma alocação e não teve um free por exemplo)
  3. Preciso pegar as saidas do Valgrind e Retornar o valor 1 (ocorreu erro) ou valor 0 (não há erros)

Fiz da seguinte forma:

String line;
    Process p = Runtime.getRuntime().exec("valgrind -v /gera_erro2");
    BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
    while ((line = input.readLine()) != null) {
        System.out.println(line);
    }
input.close();

As saídas que eu capturo são do “gera_erro2”, as do Valgrind que são as importantes não são capturadas.
Um rapaz disse que teria como fazer utilizando Scanner mais ou menos assim :

Scanner = new Scanner("program_name");

Alguém teria uma idéia de como isso poderia ser feito.
PS: Estou utilizando Linux (Debian)

Att., Roberto

3 Respostas

E

Provavelmente o valgrind deve jogar sua saída na saída de erro padrão, que você obtém via getErrorStream.

http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/lang/Process.html#getErrorStream()

R

Cara, muito obrigado.
Era exatamente isso que eu necessitava.
Merece até um beijo, mas se fosse do sexo aposto kkk então vai um aperto de mão.
Valeu!
Att., Roberto

barenko

robert0295:
Cara, muito obrigado.
Era exatamente isso que eu necessitava.
Merece até um beijo, mas se fosse do sexo aposto kkk então vai um aperto de mão.
Valeu!
Att., Roberto

romantismo no ar… :roll:

Criado 21 de julho de 2010
Ultima resposta 21 de jul. de 2010
Respostas 3
Participantes 3