Hei
Jos ajan käyttöjärjestelmätasolla ohjelman runtime.exec()-metodilla, mistä tiedän milloin ohjelma on lopettanut suorituksen ja palauttanut arvon ohjelman loppumisen merkiksi?
Jos ajan käyttöjärjestelmätasolla ohjelman runtime.exec()-metodilla, mistä tiedän milloin ohjelma on lopettanut suorituksen ja palauttanut arvon ohjelman loppumisen merkiksi?
Vastaukset 2
Vanhimmat
Nuo exec()-metodit palauttavat Process-luokan objektin, jolla on avuliaita metodeja. Eli jotakuin seuraavanlaisesti.
Runtime r = Runtime.getRuntime();
...
Process p = r.exec(...);
try {
___int retval = p.waitFor();
___/* Suoritus on päättynyt. 'retval' on suoritetun prosessin paluuarvo. */
} catch (InterruptedException ie) {
___/* Odotus keskeytyi. Sitä voi vaikka yrittää uudestaan. */
}
Jos ei halua nykyisen säikeen pysähtyvän odottamaan, niin voi tietysti käynnistää uuden joka vain odottaa prosessin loppuvan ja notifioi sitten haluamallaan tavalla paluuarvosta.
Tuohan toimii, kiitoksia vaan!