Java: lancement de programme avec "option"

Discussion dans 'Web, design' créé par Skarbone, 17 Février 2008.

Statut de la discussion:
Fermée.
  1. Offline
    Skarbone I would rather be snowboarding
    Salut tout le monde :)

    Voila, je suis en train de bosser sur mon premier projet de java pour l'école, et j'ai un petit problème...

    En fait, je dois creer un programme (avec diverses classes, mais soit) qui doit etre appelé avec un argument pour fonctionner.
    Par exemple, pour faire l'action 1 je dois lancer

    java monprogramme action1

    pour chaque action, je rajoute un "mot clé" après le nom de mon programme en gros...
    Seulement voila, je sais pas trop comment faire cela?

    J'ai pensé a tout simplement faire une méthode "action1" dans mon programme, je n'ai pas encore eu l'occasion de tester.. est-ce comme cela que je dois faire?
    Si oui, lorsque je lancerai java monprogramme action1, je ne devrai pas mettre de () après action1?

    Merci d'avance :p


    ps: a oui, si jamais le mot clé que je met après monprogramme n'est pas un mot clé utilisé, mon programme doit automatiquement afficher une liste des mots clé connus... Jsais pas trop comment faire =D
    try and catch?
    Skarbone, 17 Février 2008
    #1
  2. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    ton programme démarre par une fonction main(), non ?

    et quel est le prototype de cette fonction ?

    void Main(string args[]);

    tes arguments de ligne de commande se situent dans ce tableau de chaines "args".

    là, un test sur args.length() pour savoir s'il y a eu un argument, et si oui, un bête switch (args[0]){ ... } pour savoir quelle action effectuer ...
    Jereck, 17 Février 2008
    #2
  3. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    et pour ton PS, utilise le case "default" du switch, et un Console.WriteLine()
    Jereck, 17 Février 2008
    #3
  4. Offline
    tqz_ Elite
    J'aurai pas dit mieux :)

    Bonne chance pour ton projet
    tqz_, 17 Février 2008
    #4
  5. Offline
    Skarbone I would rather be snowboarding
    Je dirais String[] args plutot :p

    mais je comprend pas trop comment faire pour que le paramètre soit reconnu, etant donné que j'ai jamais rien mis dans ce tableau de string :/
    Skarbone, 17 Février 2008
    #5
  6. Offline
    CiDoUm ListMinut.be
    Rien dit :)
    CiDoUm, 17 Février 2008
    #6
  7. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    TU ne mets rien dedans, c'est un argument que la machine JAVA file à ton programme. et cet argument contient les arguments de la ligne de commande.

    dans ce cas-ci, {"action1"}
    Jereck, 17 Février 2008
    #7
  8. Offline
    Skarbone I would rather be snowboarding
    Oki, donc je devrais faire un truc du genre

    if (args[0] == "action1"){
    ....code de mon action1
    ....
    }

    c'est cela?
    En sachant qu'on ne doit donner qu'un seul argument a chaque execution.. Ces arguments peuvent etre new, favorites, delete, add, list et ce genre de trucs..

    Bon evidemment j'utiliserais un switch, et je pense que pour comparer deux string faut faire appel aux méthodes equals, mais dans l'idée, c'est cela?
    Skarbone, 17 Février 2008
    #8
  9. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    oui

    et n'oublie pas de vérifier avant qu'il y a bien qque chose dans args (qu'on a pas lancé ton pgm sans argument quoi)
    Jereck, 17 Février 2008
    #9
  10. Offline
    null ose();
    Et surtout n'oublie qu'en Java, on vérifie l'égalité d'une chaîne avec une autre via .equals() :

    if (args[0].equals("action1")){
    ....code de mon action1
    ....
    }
    null, 17 Février 2008
    #10
  11. Offline
    Ahava Revenant
    Encore un à l'ESI.. ils ont oublié le TD avec le tab d'arguments, on dirait..
    Ahava, 17 Février 2008
    #11
  12. Offline
    Skarbone I would rather be snowboarding
    si tu relis mon message, je l'avais écrit =D
    Skarbone, 17 Février 2008
    #12
  13. Offline
    AcidBird Touriste
    Pense quand même à vérifier la longeur de ton tableau d'argument, je sais pas qui donne java à l'ESI mais j'ai connu des profs assez tordus qui n'hésiteront pas à tester ton programme sans passer d'arguments, juste pour le fun :p
    AcidBird, 18 Février 2008
    #13
  14. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    https://www.gamerz.be/showthread.php?i=1&p=2437543#post2437543

    hihi

    et c'est loin d'être un test de tordu, quoi que tu en penses.
    Jereck, 18 Février 2008
    #14
  15. Offline
    Skarbone I would rather be snowboarding
    Bah, je pense, dans mon switch, mettre une des possibilités comme étant si args[0]==null, alors afficher l'aide.

    Enfin, d'un coté c'est vrai que ca doit l'afficher également si on tappe un paramètre qui n'est pas valable..
    Skarbone, 18 Février 2008
    #15
  16. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    non, ça marchera pas

    si args est vide, args[0] lèvera une ArgumentOutOfRangeException (ou équivalent)

    (j'avoue que je me base sur le comportement du C#, mais c'est toujours fort proche.)
    Jereck, 18 Février 2008
    #16
  17. Offline
    Skarbone I would rather be snowboarding
    toujours est il que je n'ai pas besoin de tester la longueur du tableau, si mon programme execute l'un des modules, c'est qu'il y avait un paramètre correct, sinon, il affichera l'aide.

    En tout cas merci a tous, avec ca je devrais me débrouiller :p
    Skarbone, 18 Février 2008
    #17
  18. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    tu as essayé d'accéder à args[0] si le tableau est vide ?
    Jereck, 18 Février 2008
    #18
  19. Offline
    Skarbone I would rather be snowboarding
    non, mais args[0] ne contient aucun des paramètres reconnus, il affiche toujours la même chose, que l'on ai pas mis de paramètres ou bien qu'on ai mis un paramètre erroné :)

    edit: oké j'ai compris :p.
    reglé ca avec une recherche de la taille du tableau, si elle est de 0, alors il affiche d'office l'aide
    Skarbone, 18 Février 2008
    #19
Statut de la discussion:
Fermée.