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