[d�butant]lancement d'une commande Unix ou LInux depuis Java
Bonjour,
Je veux ex�cuter une commande shell depuis java,
il s'agit de la commande suivante : hdparm -i /dev/hda | grep SerialNo.
Cette commande permet de r�cup�rer le num�ro de s�rie d'un disque dur
ide.
Je lance la commande par un
Code:
1 2 3 4
|
Runtime r = null;
Process p = null;
p = r.exec("hdparm -i /dev/hda | grep SerialNo"); |
Cela ne fonctionne pas et je me demande bien pourquoi,
une commande telle que p = r.exec("env"); fonctionnant tr�s bien.
Du coup, je suis oblig� d'encapsuler la commande hdparm -i /dev/hda |
grep SerialNo dans un script shell et de lancer ce shell depuis
la commande p = r.exec .
Bien malheureux et gu�re pratique si je veux ex�cuter plusieurs
commandes shell.
Peut �tre n'est ce pas le bon proc�d� pour lancer une commande shell avec param�tres.
Une id�e ?
Marc
Message �dit� par Miss Gaelle : Balises code ajout�es, ajout de tag dans le titre.
lancement d'une commande Unix ou LInux depuis Java
Merci pour cette r�ponse rapide et efficace.
Mon probl�me n'est cependant pas tout � fait r�solu, voici le nouveau code :
Code:
1 2 3 4 5 6 7 8
|
p = r.exec(new String[] {"/bin/sh", "-c hdparm -i /dev/hda | grep SerialNo"});
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
REGEX="SerialNo";
INPUT = br.readLine();
while(INPUT=="")
p.waitFor();
System.out.println(INPUT); |
Je ne comprends pas d'o� vient l'erreur,
car la commande hdparm -i /dev/hda | grep SerialNo s'ex�cute parfaitement depuis le shell,
et je lance ce programme Java en root !
Sujet du message: lancement d'une commande Unix ou LInux de
Une petite pr�cision,
j'ai modifi� le code pour voir quel est le retour de la fonction waitFor() du Process.
waitFor retourne bien la valeur 0, ce qui indique d'apr�s l'API Java une valeur de retour normale.
-Marc
[R�solu]lancement d'une commande Unix ou LInux depuis Java
de fait le probl�me est r�solu.
Chouette, un probl�me de moins dans la vie :)
Marc