Problema executando 2 objetos Process por vez em loop

0 respostas
M

Boa noite pessoal,

estou montando um wrapper de um programa em c e estou com um problema usando a classe Process, antes de postar li em outras threads e vi como utilizar e funcionou corretamente ate certo ponto, no meu problema preciso utilizar duas chamadas por vez em um loop executando 2 arquivos em c, na primeira chamada eu crio um arquivo e e na segunda eu utilizo esse arquivo criado como entrada do segundo programa em c e ao final tenho outro arquivo de saida, sendo assim, tenho;

Process p = Runtime.getRuntime().exec("caminho programa c 1 ");  
           BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));  
           String line;  
           while ((line = in.readLine()) != null) {  
               System.out.println(line);  
           }  
           p.waitFor();  

           Process p2 = Runtime.getRuntime().exec("caminho programa c 2");  
           BufferedReader in2 = new BufferedReader(new InputStreamReader(p2.getInputStream()));  
           String line2;  
           while ((line2 = in2.readLine()) != null) {  
               System.out.println(line2);  
           }  
           p2.waitFor();

essa chamada aos 2 programas em c é feita n vezes, pois esse codigo esta em um loop, gerando 2 arquivos por vez, um para cada programa, meu problema é que uma chamada nem sempre espera a outra terminar, e um arquivo de saida do primeiro programa acaba nao sendo criado para a execução do segundo e o print tb sai incompleto, li o artigo “When Runtime.exec() won’t”, fiz o mesmo usando o StreamGobbler, mais o resultado é o mesmo, a diferença e que consigo escrever em tempo de execução mas mesmo assim um processo inicia antes do outro terminar, alguém poderia me ajudar?

[]'s

Criado 28 de maio de 2012
Respostas 0
Participantes 1