1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| ProcessBuilder pb = new ProcessBuilder("./A",param1,parm2);
Process p = null;
try {
p = pb.start();
InputStream in = p.getErrorStream();
BufferedInputStream buf = new BufferedInputStream(in);
InputStreamReader inread = new InputStreamReader(buf);
BufferedReader bufferedreader = new BufferedReader(inread);
String line;
while ((line = bufferedreader.readLine()) != null) {
System.out.println(line);
}
// dans un thread n°1, envoyer les données via p.getOutputStream().write(...)
// dans un thread n°2, lire la réponse via p.getInputStream().read(...)
// dans un thread n°3, lire les erreurs via p.getErrorStream().read(...)
// et dans le thread principal, on attends que tout soit finis :)
p.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} |