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