Problématiques de process et pipe
Bonjour,
voila j'ai un petit programme que je souhaite lancer avec une IHM. Seul pb il ne s'agit pas d'un ligne de commande mais d'une interface de dialogue.
Je pensais donc utiliser ce petit bout de code pour essayer de piper le sous process lancé mais dès que j'arrive à la lecture ça bloque. En revanche si j'enlève la partie pour envoyer des donnez au programme (du style je récupère simplement la sortie du commande, la ca ne bloque plus...je ne comprends rien) voici le code :
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
| try {
Process p = Runtime.getRuntime().exec("./dial2");
/* Thread t1 = new write(p), t2 = new read(p); */
// Creation des flux
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedWriter stdOutput = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
// read the output from the command
int i = 0;
while (i<100)
{
System.out.println("java -> " + i);
st = ""+i;
i++;
// Envoie des donnees
stdOutput.write(st, 0, st.length());
stdOutput.newLine();
stdOutput.flush();
// Reception
System.out.print("C -> ");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
}
System.exit(0);
} catch (IOException e) {
System.out.println("exception happened - here's what I know: ");
e.printStackTrace();
System.exit(-1);
} |
J'ai aussi tenté en séparant tout cela et en utilisant des threads -> même pb
merci pour votre aide