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 :

Arguments du main


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Arguments du main
    Bonjour,

    J'ai deux classes java que j'execute en fonction du type du fichier d'entrée. Dans mon main, je crée une instance de ces deux classes et via une méthode execute(), j’apelle telle ou telle classe en mettant en commentaire celle qui ne m'intéresse pas (donc pas très joli)
    Je souhaiterai pouvoir mettre 0 ou 1 en argument du main. Lorsque mon fichier d'entrée est de type CSV, je met 0 en argument et j'appelle la bonne classe: qqch du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (args==0 )
    {GeneratorCsv executer = new GeneratorCsv();
    executer.execute(configProperties);}
    Pensez-vous que cela est possible. Si oui comment?

    Voici mon main actuel
    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
     
    public static void main(final String[] args) {
    		try {
    			Properties configProperties = readConfiguration();
     
    			/**Traitement pour autre**/
    			//GeneratorAutre executer = new GeneratorAutre();
     
    			/**Traitement pour CSV**/
    			GeneratorCsv executer = new GeneratorCsv();
     
    			executer.execute(configProperties);
    		} catch (Throwable e) {
     
    			LOG.error(e);
     
    		}
    	}
    Merci pour vos suggestions.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Par défaut
    en lisant le tableau d'arguments args et en utilisant un bon vieux "switch" par exemple.

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Par défaut
    Lire la FAQ, et un bon cours de Java!

    http://java.developpez.com/faq/java/...sLigneCommande

  4. #4
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Merci, je vais jeter un coup et faire quelques tests.

  5. #5
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Merci pour vos réponses mais cela ne m'a pas tellement aidé.
    Je ne peux pas mettre de switch car il me faudrait passer mon type args en int par exemple alors qu'actuellement il est de type String[] (sinon j'ai une erreur fatale et un exit programm). Puisque je n'ai que 2 cas, je peux donc passer par un if, else. Mais par la suite, faut-il faire qqch dans mon shell ou mon .bat ?

    Pour la faq, cela ne répond pas à ma question.

    D'autres suggestions svp??

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Par défaut
    methode parseInt(str) pour transformer un String en entier.

  7. #7
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Par défaut
    Citation Envoyé par Morji2810 Voir le message
    Pour la faq, cela ne répond pas à ma question.

    D'autres suggestions svp??
    En fait si, si tu comprends bien ce qui y est dit. Et que tu maitrises les bases du langages.

    Mais il me semble que cela n'est pas ton cas. D’où mon conseil, relayé par d'autres, de prendre le temps de lire un bon cours de Java, qui part du début. Tu vas peut être perdre un jour ou deux au départ, mais tu vas en gagner bien plus par la suite!

    Pour répondre plus précisément à ta question tout de même.

    Lorsque tu exécute un programme java, la syntaxe d'appel est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java TaClasseAvecMain arg1 arg2 arg3
    (en plus, tu peux évidement avoir des classpath ou d'autres arguments).

    Si tu utilise un IDE (genre Eclipse et Netbeans, ou autre) cet appel peut être transparent pour toi quand tu fais click-droit > Run as > Java Application ou l'équivalent. Mais sache que l'appel est bel et bien là et que tu peux paramétrer le lancement de ton programme par ton IDE pour y mettre tes arguments. Je te laisse chercher comment, le net grouille d'explications à ce sujet.

    Maintenant que tu sais comment est appelé ton programme, tu peux donc lui mettre les arguments qui te conviennent.

    Et donc les récupérer dans ton main comme l'a fait plawyx.

    Attention tout de même, son code ne vérifie pas le nombre d'arguments, donc cela peut provoquer des exceptions si tu n'as pas de paramètres.

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

Discussions similaires

  1. Arguments avec Main
    Par smutmutant2003 dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2007, 11h46
  2. gestion propre des arguments du main
    Par jobherzt dans le forum C++
    Réponses: 1
    Dernier message: 30/08/2006, 18h17
  3. argument de main de type float
    Par booby dans le forum C
    Réponses: 3
    Dernier message: 14/04/2006, 14h34
  4. arguments de main
    Par BnY dans le forum C
    Réponses: 8
    Dernier message: 13/04/2006, 12h31
  5. Réponses: 9
    Dernier message: 29/07/2003, 14h41

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