Bonjour,

J'ai un problème avec l'utilisation de l'objet Runtime(). Je ne vais pas poster toutes les lignes de mon code, vu sa longueur, mais voici la partie en question (les noms choisis sont à titre indicatif) :

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
37
Runtime rt = Runtime.getRuntime();
JButton bouton1= new JButton();
JButton bouton2= new JButton();
 
/* ... quelques lignes de codes... */
 
public void actionPerformed(ActionEvent e) {
    if(e.getSource() == bouton1) {
    	action1();
    } else {
    	action2();
    }
}
 
public void action1() {
 
    try {
	rt.exec("ma_commande1");
	rt.exec("ma_commande2");
        bouton1.setEnabled(false);
        bouton2.setEnabled(true);
    } catch (IOException e) {
	e.printStackTrace();
    }
}
 
public void action2() {
 
    try {
	rt.exec("ma_commande3");
	rt.exec("ma_commande4");
        bouton1.setEnabled(true);
        bouton2.setEnabled(false);
    } catch (IOException e) {
	e.printStackTrace();
    }
}
Et donc, lors de l'appui sur le bouton1, la commande fonctionne et l'action 1 se réalise, mais quand j'appuie sur le bouton2, hormis la propriété "setEnabled", la commande n'est pas exécutée. Mais si j'appuie encore sur le bouton1, cette fois-ci c'est les commandes de l'action2 qui sont exécutées (donc celles d'avant) et pareil, si j'appuie ensuite sur le bouton2, c'est les commandes de l'action 1 qui sont exécutées. Et ça continue ainsi de suite, du coup, chaque bouton exécute l'action de l'autre.

J'ai fais des recherches sur l'objet Process et Runtime, j'ai testé des choses avec waitFor(), mais ça ne donne rien. Peut-être que la réponse est toute bête ou pas, alors je viens vous demander si vous avez une idée d'où est-ce que cela peut venir.

Merci d'avance !