[RESOLVIDO] Acessando GCC via aplicação Java

Galera to tentando acessar o compilador do GNU (GCC) via uma aplicação Java, utilizando RunTime().

Process out = Runtime.getRuntime().exec("gcc");

Via terminal, a execução do “gcc” retornaria o seguinte Log:
“gcc: erro fatal: no input files
compilação terminada.”

Via código Java, nada acontece, e quando tento veriricar a saida do out na seguinte linha:

System.out.println(out.exitValue());

Ele da erro, afirmando que o process out não finalizou ainda…

Alguma dica??

Edit:

Ele está funcionando corretamente, apenas não consigo pegar os Log

estou tentando desta forma:

InputStream is = out.getInputStream(); InputStreamReader isreader = new InputStreamReader(is); BufferedReader input = new BufferedReader(isreader); String linha = ""; while((linha = input.readLine()) != null){ System.out.println(linha); }

quanto testo com o comando ls, funciona perfeitamente…

Att,
Alexandre.

Isso irá te ajudar:

Abraços.

[quote=Marcelo_SCS]Isso irá te ajudar:

Abraços.[/quote]

Opa marcelo, Otimo post, mais ainda não sanou minha duvida.

Como eu comentei, com comando ls, o retorno funciona perfeitamente.
Quando eu compilo qualquer arquivo com o gcc via aplicação Java, ele funciona perfeitamente.
O problema está em pegar o retorno que o gcc da via terminal…

Entendo. O gcc não joga a saída no stdout, e sim no stderr. Esse código irá funcionar:

    public static void main(String args[]) {
        try {
            Runtime rt = Runtime.getRuntime();
            Process proc = rt.exec("gcc");
            InputStream stderr = proc.getErrorStream();
            InputStreamReader isr = new InputStreamReader(stderr);
            BufferedReader br = new BufferedReader(isr);
            String line = null;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
            int exitVal = proc.waitFor();
         } catch (Throwable t) {
            t.printStackTrace();
        }
    }

Att.

Resolvido.
Obrigado pela ajuda Marcelo!!!

Att,
Alexandre