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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    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
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    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
    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
    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 chevronné
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    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