[ProcessBuilder] Flux trop rapide
Bonjour, petite question sur ProcessBuilder.
J’exécute un programme avec ProcessBuilder, je lis le flux getInputStream pour connaître le résultat de ma commande ( je souhaite récupérer le PID d'un programme ), cependant la lecture se fait trop tard j'explique :
Sous un shell classique :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
jose@jose-desktop:~$ /bin/sh -c thunderbird & echo $!
[1] 2437
2437
jose@jose-desktop:~$
Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path*: «*pixmap*»
Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path*: «*pixmap*»
Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path*: «*pixmap*»
Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path*: «*pixmap*» |
Dans java :
Code:
1 2 3 4 5 6 7 8
|
Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path*: «*pixmap*»
Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path*: «*pixmap*»
Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path*: «*pixmap*»
Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path*: «*pixmap*» |
Le but étant d'obtenir le PID du programme lancé ( ici thunderbird )
Le code java utilisé est :
Code:
1 2 3 4 5 6 7 8 9 10
| Process process = new ProcessBuilder(cmd).redirectErrorStream(true).start();
try {
process.getOutputStream().close();
process.getErrorStream().close();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(), encodage));
try {
String s;
while ((s = reader.readLine()) != null) {
//traitement |
Savez vous comment je peux corriger cela ?