Bonjour,

j'ai déjà posté il y a quelques jours à ce sujet, mais je ne retrouve pas le message.

Mon but était de lancer une commande shell (sh ou bash) depuis java, par exemple hdparm :
depuis le shell, cela donne par exemple :
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
 
Runtime r = Runtime.getRuntime();
    	Process p = null;
    	String REGEX = null;
    	String INPUT = null;
		try {
			p = r.exec(new String[] {"/bin/sh", "-c", "hdparm -i /dev/hda | grep SerialNo"});
			p.waitFor();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	BufferedReader br = new BufferedReader(new InputStreamReader(
				p.getInputStream()));
			REGEX = "SerialNo";
		INPUT = br.readLine();
Le 'INPUT' permettant de récupérer la sortie standard de la ligne de commande.

Mon problème est que je veux faire la même chose avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
p = r.exec(new String[] {"/bin/sh", "-c", "scsiinfo -s /dev/sda"});
or dans ce cas précis, INPUT renvoie 'null'.
Pourtant la commande fonctionne très bien depuis le shell.

Une idée pour me dépanner ?