IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

commande dos sous java


Sujet :

API standards et tierces Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut commande dos sous java
    bonjour jai un probleme
    certaine commandes dos ne fonctionnent pas dans mon prog
    notamment dir,telnet,javac,call
    alors que ping marche
    voici mon code :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public class Panneau2 extends JPanel{
            JTextField ping;
            JTextArea zone;
            JLabel lab;
            Box boiteV = Box.createVerticalBox();
            public Panneau2(){
                ping = new JTextField(20);
                zone = new JTextArea(10,40);
                zone.setBackground(Color.black);
                zone.setForeground(Color.white);
                boiteV.add(ping);
                boiteV.add(new JScrollPane(zone));
                add(boiteV);
                ping.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e){
                        String exe = ping.getText();
                        try{
                            Process proc=Runtime.getRuntime().exec(exe);
                            InputStream entree = proc.getInputStream();
                            InputStreamReader test = new InputStreamReader(entree);
                            BufferedReader br = new BufferedReader(test);  
                            String line = br.readLine();
                            int exitVal = proc.waitFor();
                            System.out.println("Valeur de sortie: " + exitVal);
                            while ( line != null & line != ""){
                                System.out.println(line);
                                zone.append(line + '\n');
                                line = br.readLine();
                            }
                        }
                        catch (Exception excpt){zone.append("commande non valide \n");}
                }});
            }
        }
    quelqun atil une idee sur e pourquoi du comment ? merci davance.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Sous Windows, dir et call ne sont pas des programmes à part entière mais des fonctions de l'interpréteur de commande (cmd.exe sous Windows NT/XP, command.com sous Windows 9x). Il faut donc que tu appelles ce programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process proc=Runtime.getRuntime().exec("cmd.exe /C dir");

    Pour telnet et javac par contre, cela devrait fonctionner à partir du moment où ils sont présent dans le PATH du système...

    Le plus simple est d'utiliser la boite de dialogue Executer (touche Windows+R) afin d'y entrer la même commande que celle passer à exec()...

    a++

    PS : pense également à traiter le flux d'erreur sous peine de bloquage de l'application...

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut
    merci pour les commandes dos
    le telnet est bien dans le path mais il ne marche pas
    mon prog n'est pas bloqué mais il me renvoi la valeur de sortie du prog qui est -1
    ce qui n'est pas normal c'est que cette valeur devrait etre a 0
    merci pour ton aide

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yann999
    mon prog n'est pas bloqué mais il me renvoi la valeur de sortie du prog qui est -1
    ce qui n'est pas normal c'est que cette valeur devrait etre a 0
    Ce n'est juste qu'une convention... la valeur de retour dépend du programme qui a été lancé...

    a++

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut
    le prog telnet.exe ne marche pas est ce normal ?

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yann999
    le prog telnet.exe ne marche pas est ce normal ?
    "ne marche pas" : C'est à dire ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut
    si tu regarde mon code je gere une exception
    dans laquelle jaffiche "commande non valide"
    lorsque je lance la commande le prog me renvoi commande non valide

Discussions similaires

  1. Excécuter une commande Dos sous Java
    Par mina86 dans le forum Général Java
    Réponses: 2
    Dernier message: 31/05/2008, 12h01
  2. comment recuperer le resultat d'une commande dos en java?
    Par trunks-tr dans le forum Général Java
    Réponses: 49
    Dernier message: 06/06/2006, 14h25
  3. faire tourner une commande dos sous application java
    Par Terminator dans le forum API standards et tierces
    Réponses: 22
    Dernier message: 02/05/2006, 22h33
  4. lancement de commande DOS en java
    Par horkets dans le forum Général Java
    Réponses: 23
    Dernier message: 12/04/2006, 17h08
  5. commande dos sous oracle
    Par tcy dans le forum Oracle
    Réponses: 4
    Dernier message: 18/07/2005, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo