Bonjour
La question fait suite à celle que j'ai écrite ce matin, mais là, un point de langage m'empêche de progresser.
Je lance un processus avec Runtime.exec() dans un premier thread. Je veux pouvoir récupérer l'output de ce programme. D'après ce que j'ai lu, je dois pouvoir récupérer ça dans un thread séparé. Le problème est de pouvoir bien synchroniser les deux threads, et là, je ne sais pas faire.
Voici mon code pour le moment :
Merci d'avance de votre aide.
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 Thread t = new Thread(){ public void run(){ String cmd = "scp /home/gldavid/seq.txt gldavid@cluster:~"; try{ final Process p = Runtime.getRuntime().exec(cmd); Thread t2 = new Thread(){ public void run(){ try { java.io.InputStream processOutput = p.getInputStream(); byte[] b = new byte[512]; int read; while ( (read = processOutput.read(b) ) > 0 ) { System.out.write(b, 0, read); } processOutput.close(); } catch(IOException ioe){ ioe.printStackTrace(); } } }; try{ synchronized(this) { this.wait(); } } catch(InterruptedException ie){ ie.printStackTrace(); } t2.start(); } catch(IOException ioe){ ioe.printStackTrace(); }
@++
Partager