Bonjour!

J'ai une classe qui se charge de lancer sequqnetiellement les differents objets qui compose mon application.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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