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 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 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 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 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
Rejoignez-nous