S'assurer de la fin d'un traitement avant de continuer
Bonjour!
J'ai une classe qui se charge de lancer sequqnetiellement les differents objets qui compose mon application.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
import ....
public class ManualInsert implements Job {
public ManualInsert () {
}
public void execute(JobExecutionContext arg0) throws JobExecutionException {
try {
.......
// - 1 - Lance une appliction externe qui prend du temps
decryptFeeder decryptor = new decryptFeeder(sourceFolder);
decryptor.decryptFiles(program, DECRYPT_COMMAND, into, forKey);
// - 2 - pour chacun des fichiers crees au-dessus, faire un traitement
for (int ind = 0; ind < BAIFolder.length; ind++) {
// Read args
String inputFileName = BAIFolder[ind];
// Constructor
TransformBAI transformer = new TransformBAI(BAIFolderName+inputFileName);
// Create the MT940 file
transformer.createMT940File(MT940OutputFolder);
} // End for (int ind = 0; ind < BAIFolder.length; ind++)
} catch (Exception e) {
throw new JobExecutionException(e);
}
}
} |
J'aurai souhaite qu'une fois le traitement effectue en - 1 - soit lance, le programme marque un temps d'attente afin que le traitement se finisse pour ensuite lancer - 2-.
Quelques lignes de la classe decryptor:
Code:
1 2 3 4
|
Process proc = null;
Runtime r = Runtime.getRuntime();
proc = r.exec(program+FileToDecryptPath+into+txtFormat+forKey); |
Si j'ajoute la ligne int x = proc.waitFor(); pour lui demander d'attendre la fin de l'execution, il bloque indefiniment.
Auriez-vous une idee ?
Merci