Execution d'une commande linux sous java

crackinett_boy
Messages postés
12
Date d'inscription
jeudi 19 février 2004
Statut
Membre
Dernière intervention
4 août 2009
- 12 juin 2008 à 09:15
Twinuts
Messages postés
5371
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
1 avril 2022
- 12 juin 2008 à 10:21
Bonjour à tous !
Je développe une applet et je dois pouvoir detecter la vitesse des éventuels ports série présents sur une machine.
Sous windows je fais ça :
try {

                    String command = "cmd.exe /c MODE";

                    Process child = Runtime.getRuntime().exec(command);

                    InputStream in = child.getInputStream();

                    int c;

                    while ((c = in.read()) != -1) {

                        char c2 = (char) c;

                        resCmd = resCmd.concat(c2 + "");

                    }

                    in.close();

                } catch (IOException e) {

                    e.printStackTrace();

                }
System.out.println("RESULTAT : " + resCmd + "\nFIN");

    }

tout marche nickel et je récupère bien le résultat de ma commande.

Pour les systèmes de type mac/unix je fais dans même esprit  :

try {

                    String command = "stty";

                    Process child = Runtime.getRuntime().exec(command);

                    InputStream in = child.getInputStream();

                    int c;

                    while ((c = in.read()) != -1) {

                        char c2 = (char) c;

                        resCmd = resCmd.concat(c2 + "");

                    }

                    in.close();

                } catch (IOException e) {

                    e.printStackTrace();

                }

                System.out.println("RESULTAT : " + resCmd + "\nFIN");

            }

Dans la console ça m'affiche :
RESULTAT :

FIN

En gros le résultat de ma commande est vide. Si je fais cette commande directement dans un terminal, ça marche impec.

Si dans mon programme je mets la commande "ls", je récupère bien un résultat.

Si quelqu'un a des idées car la je ne vois pas trop comment faire !

Merci d'avoir pris le temps de me lire

Pantouflard

1 réponse

Twinuts
Messages postés
5371
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
1 avril 2022
111
12 juin 2008 à 10:21
Salut,

regarde dans 'child.getErrorStream()'

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0