Depois de usar Runtime.getRuntime().exec("cmd /c "+arquivo);
para abrir um arquivo
Como fazer pra reconhecer que ele foi fechado?
Por exemplo:
Enquanto o .exe estiver aberto não faça nada e depois que ele for fechado escrever:
System.out.println("O programa foi fechado")
Me ajudem, pq não faço a mínima ideia se existe algo que faça isso
O exec retorna um objeto (acho que do tipo Process) que pode ter alguma indicação, direta ou não, do processo estar rodando ou ativo. Nesse caso vc pode criar uma thread onde vc verifica isso a cada segundo em um loop com sleep. Não custa tentar, olha o javadoc dessas coisas
Não entendi mto bem
Tipo, eu entendi oq eu tenho que fazer
Mas não tenho a mínima noção de como fazer
primeiro, vc quer usar o metodo waitFor
https://docs.oracle.com/javase/7/docs/api/java/lang/Process.html#waitFor()
porem
java.lang
Class Process
Because some native platforms only provide limited buffer size for standard input and output streams, failure to promptly write the input stream or read the output stream of the subprocess may cause the subprocess to block, and even deadlock.
Fail to clear the buffer of input stream (which pipes to the output stream of subprocess) from Process may lead to a subprocess blocking.
ou seja
Process process = Runtime.getRuntime().exec("comando");
BufferedReader reader =
new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((reader.readLine()) != null) {}
process.waitFor();
System.out.println("ACABOU");
bonus: http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html
1 curtida
Muito obrigado mano
D vdd s2