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 :

Gestion d'arguments en ligne de commande


Sujet :

Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 41
    Points
    41
    Par défaut Gestion d'arguments en ligne de commande
    Bonjour,

    (Oui je pose pas mal de questions ces temps-ci ^^)

    J'écris un programme qui, par la suite, sera scrypté, donc besoin de pouvoir envoyer toutes les valeurs via la ligne de commande, en une ligne grâce aux arguments.


    Voilà la structure d'une de mes commandes:

    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
     
    else if(command.compareToIgnoreCase("-status")==0)
            {
                if(command2.compareToIgnoreCase("-showdown")==0)
                {
                    System.out.println("Here are the Databases expriencing a problem: ");
                }
                else if(command2.isEmpty()==true)
                {
                    System.out.println("Databases Health: ");
                }
                else
                {
                    System.out.println("Status of database: "+command2);
                }
            }
    Donc voilà, en ligne de commande, quand on tape cette ligne (par exemple)
    java -jar Client.jar -status -showdown
    Il faudrait que le bout de code exécuté soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(command2.compareToIgnoreCase("-showdown")==0)
                {
                    System.out.println("Here are the Databases expriencing a problem: ");
                }
    Quand on tape:
    java -jar Client.jar -status db_name
    Ca soit ce bout de code qui le soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    else
                {
                    System.out.println("Status of database: "+command2);
                }
    Et quand on entre cette commande:
    java -jar Client.jar -status
    Vous devinez assez aisément où je veux en venir.

    Seulement comme je l'ai fais, ça ne fonctionne pas. Mon programme saute le if dans lequel il est censé passer (selon moi).

    Comment arranger ces lignes de code pour que quand on entre pas d'arguments après le "-status", ça soit ces lignes qui soient exécutée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    else if(command2.isEmpty()==true)
                {
                    System.out.println("Databases Health: ");
                }
    ???

    Merci.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Comment remplis-tu tes variables command et command2 ?
    Lorsque tu les affiches avant leur traitement, ces variables contiennent-elles ce qu'il faut ?

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Je les rempli juste avant.

    Mais j'ai fait une boulette, je vous ai pas collé la bonne partie de code, j'vous ai donné coté serveur, alors que c'est côté client que ça merde.

    Enfin voici ce que je vais tenter côté client:

    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
     
    if (args[0].compareToIgnoreCase("-status")==0)
    			{
    				System.out.println("List of Databases: ");
                                    if(args.length>1)
                                    {
                                        if(args[1].compareToIgnoreCase("-showdown")==0)
                                        {
                                            System.out.println("Here are the databases down or experiencing a problem: ");
                                        }
                                        else
                                        {
                                            System.out.println(message); 
                                            do
                                            {
                                                                                     System.out.println(reponseDuServeur);
                                            }
                                            while(reponseDuServeur.isEmpty()==false);
                                        }
                                    }
                                    else if(args.length==1)
                                    {
                                        System.out.println("Databases Health: ");
                                        do 
                                        {
                                                                                   System.out.println(reponseDuServeur);
                                        }
                                        while(reponseDuServeur.isEmpty()==false);
                                    }
                            }
    Okay et ça ça marche

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Si tu le souhaites, il est possible de te faciliter la tâche : http://hikage.developpez.com/java/ar...cli-vs-args4j/.

  5. #5
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Merci

    Je vais y jeter un œil

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

Discussions similaires

  1. Réponses: 27
    Dernier message: 14/12/2006, 20h49
  2. Entrer un argument en ligne de commande
    Par alex_petit dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 14/12/2006, 01h11
  3. [VB.NET]Argument en ligne de commande
    Par Fayoul dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/06/2006, 13h27
  4. taille max des arguments en ligne de commande
    Par clepape dans le forum Langage
    Réponses: 2
    Dernier message: 08/10/2005, 14h18
  5. Réponses: 3
    Dernier message: 07/04/2003, 21h06

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