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 :
Le 'INPUT' permettant de récupérer la sortie standard de la ligne de commande.
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();
Mon problème est que je veux faire la même chose avec :
or dans ce cas précis, INPUT renvoie 'null'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 p = r.exec(new String[] {"/bin/sh", "-c", "scsiinfo -s /dev/sda"});
Pourtant la commandefonctionne très bien depuis le shell.
Code : Sélectionner tout - Visualiser dans une fenêtre à part scsiinfo -s /dev/sda
Une idée pour me dépanner ?
Partager