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 bien récupérer les options passées en paramètres à mon fichier.jar ?


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2002
    Messages : 62
    Points : 52
    Points
    52
    Par défaut Comment bien récupérer les options passées en paramètres à mon fichier.jar ?
    Bonsoir!

    J'ai un fichier.jar qui prend plusieurs paramètres :
    • un répertoire en 1er argument
    • une date en 2e argument
    • et des options (-r, -t, -h, etc.) en 3e argument

    En ligne de commande, j'exécuterais mon jar de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar fichier.jar c:\ 06062012 [options]
    options pouvant être "-r", "-h", "-t", etc.

    Comment récupérer de façon correcte les options qui peuvent prendre une ou plusieurs valeurs à la fois, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar fichier.jar c:\ 06062012 -r -t
    sachant que la position des options n'est pas définie (mais c'est toujours à partir du 3e argument passé à fichier.jar) ?

    Je pensais faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if( args[2]=="-r" ) options['r']=1;
    if( args[3]=="-t" ) options['r']=1;
    ...
    if( args[n]=="-z" ) options['z']=1;
    sauf que dans cette configuration, cela suppose que les options sont dans un ordre défini
    Merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Déjà le paramètre "args" est un tableau, donc tu peux passer de 0 à x paramètres. Le nombre de paramètres passer est déterminé par "args.length". Pour les valeurs de paramètres possible, le mieux c'est de les mettre dans un enum puis faire un switch - case dans une boucle pour le traitement.

    A+.

  3. #3
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Ou pourquoi pas...
    Dans votre exemple, vous cumulez les paramètres -r et -t, mais vous les "rangez" dans des positions différentes de args[]. C'est pourquoi se présente la difficulté de l'ordre.
    Pourquoi ne pas les réunir et définir votre syntaxe de sorte qu'il n'y ait jamais plus de trois arguments ? Cela donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar fichier.jar c:\ 06062012 -rt
    Et pour le cas ou vous voudriez cumuler vos trois options cela donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar fichier.jar c:\ 06062012 -rth
    Au final, il vous suffit pour déterminer chaque option de vérifier si le caractère "t" est présent dans la chaine -rth pour positionner l'option -t à 1, si le caractère 'r' est présent dans la chaîne "-rth" quelle que soit la position des lettres, ça n'a plus d'importances.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    Bonjour,

    La solution de pursang est la plus simple.

    Par contre si tu as vraiment besoin de faire une gestion compliquée de paramétres, tu peux utiliser cette librairie lien en anglais.

    Bon courage

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Points : 622
    Points
    622
    Par défaut
    Tu as juste à ajouter une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (int i = 2; i < args.length; i++) {
      if( args[i]=="-r" ) options['r']=1;
      else if( args[i]=="-t" ) options['t']=1;
      ...
      else if( args[i]=="-z" ) options['z']=1;
    }

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (args !=null){
    List<String> argsList = Arrays.asList(args);
    if (argsList.contains("-r")){
     
    }
    if (argsList.contains("-t")){
     
    }
    if (argsList.contains("-h")){
     
    }
    }
    A+.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/01/2012, 10h55
  2. comment récupérer les données d'une paramètre avec cplex
    Par debalgo dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 18/06/2008, 13h32
  3. Réponses: 2
    Dernier message: 31/01/2008, 15h30
  4. Récupérer les X dernières lignes de mon fichier txt
    Par coincoin22 dans le forum Windows
    Réponses: 0
    Dernier message: 08/08/2007, 15h39
  5. Réponses: 6
    Dernier message: 28/05/2004, 10h39

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