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

Java Discussion :

comment recuperer le resultat d'une commande dos en java?


Sujet :

Java

  1. #21
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    C'est ce que j'ai mis dans mon code...

    Si maintenant tu regardes ce qu'il ya dedans l'arrayList, tu verras que ce sont les address physiques récupéré par l'arp.

  2. #22
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    slt
    merci pour ta reponse,ben ta teste ce code et ta recupere les adresses physiques????
    l'ArrayList n'est tjr pas reconnue!!!

  3. #23
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    En employant la méthode de yam's (plus propre que la mienne en effet ) dans la méthode que je t'avais donné, ca marche parfaitement, je sais pas ce qu'il te faut de plus...

    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
    public static void main(String [] args) {
    		String cmd = "cmd /c arp -a"; 
     
    		try { 
    			Runtime r = Runtime.getRuntime(); 
    			Process process = r.exec(cmd); 
     
    			String s =null; 
     
    			BufferedReader reader = new BufferedReader(new InputStreamReader(
    process.getInputStream())); 
     
    			ArrayList<String> physicalAddresses = new ArrayList<String>();
     
    			Pattern p = Pattern.compile("([abcdef0-9]{2}-){5}[abcdef0-9]{2}");
    			while ((s = reader.readLine()) != null) {
    			     Matcher m = p.matcher(s);
    			     if(m.find()) {
    			          physicalAddresses.add(m.group());
    			     }
    			}
     
    			for(String address : physicalAddresses){
    				System.out.println(address);
    			}
    		}catch(Exception e) { 
    				System.out.println("erreur d'execution " + cmd + e.getMessage()); 
    		} 
    	}

  4. #24
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par trunks-tr
    l'ArrayList n'est tjr pas reconnue!!!
    Qu'est-ce que tu entends exactement par n'est pas reconnue ? Poste le message d'erreur.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #25
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par le y@m's
    La classe ArrayList possédant un constructeur par défaut, cette ligne de code est correct. Comme l'a dit plegat, je pense que trunks-tr a une "boulette" dans son code.
    Curieuse cette synthaxe !
    Je n'avais jamais vu de constructeur d'ArrayList avec des crochets ?!
    Ca ne fonctionnerait pas si à la place on écrivait simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList physicalAddresses = new ArrayList();
    ??

  6. #26
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Ce ne sont pas des crochets mais des < et > qui sont utilisés, comme tu l'avait justement dit, afin de spécifier le type de donnée contenue dans la liste ; il s'agit des générics disponibles depuis Java 5.0. Pour plus d'info je te renvoie à la FAQ [Java 5.0] Qu'est-ce que les Generics (types paramétrés) ?

    Citation Envoyé par Regis.C
    Ca ne fonctionnerait pas si à la place on écrivait simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList physicalAddresses = new ArrayList();
    ??
    Bien sûr que cela fonctionnerait, mais tu perdrais les avantages apportés par l'utilisation des générics (d'ailleurs tu risque d'avoir le warning suivant : [Java 5.0] unchecked : "uses unchecked or unsafe operations").
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  7. #27
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    voici le message d'erreur :
    Invalid expression as statement
    puis,il y a une croix rouge sur la ligne qui contient : ArrayList et lorsque je pointe avec la souris sur cette commande,ce message s'affiche :
    invalid expression as statement

    je bosse sur eclipse 2.1

  8. #28
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Je ne bosse pas sur eclipse, mais il semblerai que tu ais une version assez vieille (la version actuelle, sur le site d'eclipse semble être la 3.1.2). Il ce peut que ta version ne reconnaisse pas la syntaxe des générics qui est spécifique à Java 5.
    Essaye la syntaxe sans les générics
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList physicalAddresses = new ArrayList();
    et si tu n'as plus l'erreur c'est que le problème vient effectivement du fait que ta version d'eclipse ne reconnait pas la syntaxe de Java 5. Dans ce cas je ne peus que te conseiller d'installer la dernière version d'eclipse [troll inside] ou bien d'utiliser NetBeans [/troll inside].
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  9. #29
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    merci bcp
    vous avez raison,maintenant ca a marche
    mais lorsque j'execute rien ne s'affiche comme resultat,qu'est ce que je devrais regarder ladedans pour recuperer le resulat???
    merci bien

  10. #30
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Les adresses sont stockées dans ton ArrayList, ensuite tu fait ce que tu veus avec, par exemple pour les énumérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(Object address : physicalAddresses) {
         System.out.println((String) address);
    }
    Plus d'infos sur ArrayList

    Je me répète mais je te conseille d'utiliser un IDE qui reconnaisse la syntaxe Java 5 afin de pouvoir utiliser ses fonctionnalités, par exemple pour l'énumération des adresses cela t'évite un transtypage ::
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(String address : physicalAddresses) {
         System.out.println(address);
    }
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  11. #31
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    merci pour ton aide
    on m'affichais une erreure :

    Syntax error on token ":", ";" expected
    vous etes sur qu'il y un ":" ou bien c'est a cause de la version d'eclipse?!?!
    merci

  12. #32
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Oui, désolé, la syntaxe du for que j'ai utilisée est effectivement une syntaxe Java 5, donc pour toi ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i = 0; i < physicalAddresses.size(); i ++) {
         System.out.println((String) physicalAddresses.get(i));
    }
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  13. #33
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    je suis vraiment tres desole,je vous avez casse la tete par mes questions
    je fais ce que tu m'avais dis,mais on me dit encore :
    physicalAddresses cannot be resolved !!!!
    je vous remercie infinniment

  14. #34
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par trunks-tr
    je suis vraiment tres desole,je vous avez casse la tete par mes questions
    je fais ce que tu m'avais dis,mais on me dit encore :
    physicalAddresses cannot be resolved !!!!
    je vous remercie infinniment
    Tu as du te tromper d'une lettre dans la déclaration de l'ArrayList ou quelque chose du genre, vérifie tes noms de variables. Si tu trouves pas, poste ton code.

  15. #35
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Cette erreur veut dire que le compilateur ne sait pas ce qu'est physicalAddresses, il y a des chances que ce soit un problème de porté de ta variable physicalAddresses (vérifie que tu ne l'utilise pas hors de sa porté, si tu ne sait pas poste ton code).
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  16. #36
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    En tout cas merci le y@m's pour tes posts qui m'auront permis de me plonger rapidement dans la synthaxe Java 5.0 que je n'avais pas eu le temps de parcourir...
    J'ai pu comprendre la nouvelle synthaxe du For (que je ne trouve pas très parlante, mais bon...) et autres nouveautées.

    Régis. ;-)

  17. #37
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    d'accord,voici le 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
    35
    36
    37
     
    import java.io.*;
    import java.util.ArrayList;
    public class Arp { 
    public static void main(String[] args) { 
     
    	String cmd = "cmd /c arp -a > krl.txt"; 
    try { 
    Runtime r = Runtime.getRuntime(); 
    Process p = r.exec(cmd); 
     
    String s =null; 
     
    BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     
    StringBuffer buffer = new StringBuffer();
     
     
    	boolean start  = false;
    //ArrayList<String> physicalAddresses = new ArrayList<String>();
      ArrayList physicalAddresses = new ArrayList();
    while ((s = reader.readLine()) != null) {if(start){physicalAddresses.add(s.split(" ")[1]);
    }
     
    if(s.endsWith("Type")){start = true;
    } 
    }  
     
    String result = buffer.toString();
    //System.out.println(result); 
    }catch(Exception e) { 
    System.out.println("erreur d'execution " + cmd + e.getMessage()); 
    			}
    	for(int i = 0; i < physicalAddresses.size(); i ++) {
    	 System.out.println((String) physicalAddresses.get(i));
    }
    }}
    merci

  18. #38
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Il te faut déclarer la variables physicalAddresses avant le bloc try catch, comme ca elle ne sera pas seulement accessible à l'intérieur de celui-ci, mais à l'intérieur de toute la méthode.

  19. #39
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par Regis.C
    En tout cas merci le y@m's pour tes posts qui m'auront permis de me plonger rapidement dans la synthaxe Java 5.0 que je n'avais pas eu le temps de parcourir...
    J'ai pu comprendre la nouvelle synthaxe du For (que je ne trouve pas très parlante, mais bon...) et autres nouveautées.

    Régis. ;-)
    Java 5 a effectivement apporté un tas de fonctionnalités dont le nouveau for (équivalent du foreach) qui est vraiment très pratique. Entre le nouveau for, les générics, l'ellipse (nombre d'arguments variable) Java 5 l'essayer c'est l'adopter .

    trunks-tr, comme je le pensais c'est une erreur de porté de ta variable. La portée d'une variable se limite au bloc où elle a été déclarée. Dans ton cas tu déclare ton ArrayList à l'intérieur d'un bloc try, donc dès que tu sors de ce bloc ta variable n'est plus valide.
    Comme l'a dit wichtounet il te suffit de déclarer ton ArrayList avant le try.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  20. #40
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    merci,ya plus d'erreur,j'ai recompile puis executer,mais il affiche rien,pourtant il doit afficher ce que contient ArrayList n'est ce pas???

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Comment récupérer le résultat d'une requête dans un tableau ?
    Par Kylen dans le forum Accès aux données
    Réponses: 1
    Dernier message: 14/06/2006, 19h32
  2. Réponses: 2
    Dernier message: 27/02/2006, 15h59
  3. Comment insérer le résultat d'une commande avec vim
    Par zelda dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 28/12/2005, 09h32
  4. Réponses: 22
    Dernier message: 09/12/2005, 21h27
  5. Recuperer le resultat d'une commande
    Par vbcasimir dans le forum Linux
    Réponses: 2
    Dernier message: 08/12/2005, 10h11

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