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

avec Java Discussion :

Probleme d'affichage avec Runtime()


Sujet :

avec Java

  1. #1
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut Probleme d'affichage avec Runtime()
    Bonjour, je veux executer une fonction sur mon serveur linux afin de tester un serveur DNS.
    Bon la commande en Cli est : dig @adresseDNS www.site.com |grep time


    cette commande permet de retourne le resultat suivant : ; ; Query Time =7ms par exemple

    J'ai ecrit ce code afin que cette commande puisse etre executé en boucle ( tester plusieurs serveurs DNS sur plusieurs site)

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
     
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.LineNumberReader;
     
    public class Dns {
    	InputStreamReader flog	= null;
    	LineNumberReader llog	= null;
    	public int tail;
     
    public int taille()
    {
    	try{ 
    		flog = new InputStreamReader(new FileInputStream("/home/marouene/Bureau/Liste.txt") );
    		llog = new LineNumberReader(flog);
    		String myLine= null;
    		int tail=0;
    		while ((myLine = llog.readLine()) != null) { 
                        tail=tail+1;
                    }
     
     
            }catch (Exception e){
                   // --- Gestion erreur lecture du fichier (fichier non existant, illisible, etc.)
                   System.err.println("Error : "+e.getMessage());
            }
     
     
    	return tail;
     
    }
     
    public static void main(String[] args) {
    	String tableauDNS[] = {"193.55.12.4","193.55.12.77"};
    	Dns dns= new Dns();
    	int tt =dns.taille();
    	String [] adresses =new String[tt];
    	InputStreamReader flog	= null;
    	LineNumberReader llog	= null;
    	String myLine= null;
    	String line;
    try{ 
    	flog = new InputStreamReader(new FileInputStream("/home/marouene/Bureau/Liste.txt") );
    	llog = new LineNumberReader(flog);
     
     
    	while ((myLine = llog.readLine()) != null) { 
                      // --- Affichage de la ligne lu depuis le fichier
    		for (int f=0;f<tableauDNS.length;f++)
    		{
     
    		String testCmd = "dig @"+tableauDNS[f]+" "+ myLine+" |grep Query";	
    		Runtime r = Runtime.getRuntime();
     
    		Process p = r.exec(testCmd);
    		BufferedReader in = new BufferedReader(new
    				InputStreamReader(p.getInputStream()));
     
    		        System.out.println(in.readLine());
     
     
    		//System.out.println("Temps de réponse pour la requete "+myLine+" pour le serveur DNS  "+tableauDNS[f]+" est :" +in.readLine());	
     
     
                }
     
    	}
        }catch (Exception e){
               // --- Gestion erreur lecture du fichier (fichier non existant, illisible, etc.)
               System.err.println("Error : "+e.getMessage());
        }
     
     
    }
    }
    Mais rien ne s'affiche
    quand j'ajoute une boucle (white line <> null) le resultat sera affiché entierement comme si on utilise pas le grep|time


    merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Runtime sert à exécuter une application.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dig @adresseDNS www.site.com |grep time
    C'est une commande bash regroupant deux applications.
    Dans votre cas, exécutez seulement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dig @adresseDNS www.site.com
    et utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.getInputstream()
    pour lire les données dont vous avez besoin.

  3. #3
    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,

    Il ne faut pas oublier qu'il faut traiter (ou fermer) tous les flux d'entrée/sorties du process !!! Il y a plein de ressources sur le sujet sur le forum et des les cours/faqs...



    Sinon je vois que tu as complètement ignorer les remarques que j'ai faite il y a deux jours

    a++

  4. #4
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,

    Il ne faut pas oublier qu'il faut traiter (ou fermer) tous les flux d'entrée/sorties du process !!! Il y a plein de ressources sur le sujet sur le forum et des les cours/faqs...



    Sinon je vois que tu as complètement ignorer les remarques que j'ai faite il y a deux jours

    a++
    Non j'ai pas du tout ignoré mais c'est que je fait plusieurs taches en //
    merci pour votre réponse, je vais essayé ca maintenant
    (j'ai pensé aussi à l'alternative shell() qui fait appel au shell par defaut de l'OS)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme d'affichage avec un DataGridView
    Par kekesilo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/01/2007, 14h12
  2. Probleme d'affichage avec TextOutA
    Par NouRSS dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2006, 15h01
  3. [Graphic2D] Probleme d'affichage avec drawLine()
    Par Yannick_from_31 dans le forum 2D
    Réponses: 12
    Dernier message: 23/05/2006, 18h09
  4. Problème d'affichage avec top
    Par HacHHacH dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 03/04/2006, 01h25
  5. Réponses: 6
    Dernier message: 10/11/2005, 08h58

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