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 :

Saisie d'arguments dans la ligne de commande


Sujet :

Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut Saisie d'arguments dans la ligne de commande
    Bonjour,
    Je suis débutante en JAVA et j'aimerais saisir des arguments dans la ligne de commande. Par exemple : javac essai.java -p. Le problème est que je ne sais pas comment récupérer l'argument.

    En C++ j'écrirais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (argc > 1) {
          if (strcmp (argv[1], "-p") == 0)
               cout << "Programme " << endl;
    Est-ce que quelqu'un pourrait m'aider et m'indiquer comment ça se passe en JAVA ?
    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    et bien c'est à peu près la même chose.
    Dans ta méthode main tu as un paramètre sous forme de tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    static void main(String argv[]){
       if(argv.length>=2){
          toto0=argv[0];
          toto1=argv[1];
          toto2=argv[2];
       }
    }
    Steve Hostettler
    est ton ami(e) et le tag aussi.

  3. #3
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Si tu apprends Java je te conseille de faire un tour dans la FAQ :


    Sans oublier l'API via http://javasearch.developpez.com/...

    a++

  4. #4
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    OK, mais comment je fais pour voir si args[0] est égal à -p ?

    Merci...

  5. #5
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Merci pour l'info adiGuba,
    Je vais y faire un tour.

  6. #6
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    En fait, j'aurai toujours qu'un seul argument.

    Le but est lorsque je donne l'argument -p dans ma ligne de commande, je dois demander la saisie au clavier de toutes les infos qui permettent de donner le dn du LDAP (ch, dc ou, uid)...

    Merci !

  7. #7
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Oh un truc manquant dans la FAQ : contrairement à C/C++ le nom du programme n'est jamais dans la liste des arguments.

    Ainsi avec

    >monProg -p

    - En C/C++ on aurai args est de taille 2, args[0] == "monProg" et args[1] == "-p"

    - En Java on a args est de taille 1 et args[0] == "-p"
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  8. #8
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    J'ai encore une autre question...

    Quand je compile mon fichier, comment est-ce que je dois faire donner l'argument "-p" dans la ligne de commande.

    Voici mon code :
    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
     
    public class Client {
    	public static void main(String[] args) {
    		Hashtable<String,String> env=new Hashtable<String,String>();
    		env.put (Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    		env.put (Context.PROVIDER_URL, "ldap://localhost:389");
    		env.put (Context.SECURITY_AUTHENTICATION, "simple");
    //		env.put (Context.SECURITY_PRINCIPAL, "cn=Manager,dc=esnig,dc=ch");
    		env.put (Context.SECURITY_PRINCIPAL, "uid=geiersberger,ou=personne,dc=esnig,dc=ch");
    		env.put (Context.SECURITY_CREDENTIALS, "esnig05");
     
    	// Création de "Initial context"
    	try {
    		DirContext ctx = new InitialDirContext(env); 
     
    		if (args[0] == "-p")
    			System.out.println ("Saisir le dc");
     
    			// Fermeture de "context"
    			ctx.close();
    		}
    		catch (NamingException e) {
    			System.err.println ("Erreur rencontree : " + e);
    		}
    	}
    }
    est-ce que je compiler de cette manière ? :

    javac Client.java -p

  9. #9
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    c est au moment de l appel de ton soft que tu passes le param
    pas quand tu le compile
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  10. #10
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Merci...

    donc tu veux dire que je dois lancer mon programme comme ça ? :

    java Client -p

  11. #11
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    voila et apres tu peux faire un test dans to main,
    deja tu test si ton tableau a une length > 0 et apres tu recup le [0]
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  12. #12
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    J'ai essayé et il devrait me demander de saisir le dc, mais il ne fait rien...
    Désolée d'insister. Voici mon main :
    [code]
    main...
    if (args.length>0) {
    if (args[0] == "principal")
    System.out.println ("Saisir le dc");
    }
    &#91;code&#93;

    et je l'ai lancé comme ça :

    javac Client.java

    java Client principal&#91;/code&#93;

  13. #13
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    args[0].equals("principal")
    et ca veut dire que t as fais un java taclass principal
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  14. #14
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Oui comme premier jet, je n'ai qu'un fichier java :

    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
     
    // Packages nécessaires 
    import java.util.Hashtable;
    import javax.naming.Context;
    import javax.naming.directory.InitialDirContext;
    import javax.naming.directory.DirContext;
    import javax.naming.directory.Attributes;
    import javax.naming.NamingException;
     
    // Création d'un "Initial context" et connexion à l'annuaire LDAP
    public class Client {
    	public static void main(String[] args) {
    		Hashtable<String,String> env=new Hashtable<String,String>();
    		env.put (Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    		env.put (Context.PROVIDER_URL, "ldap://localhost:389");
    		env.put (Context.SECURITY_AUTHENTICATION, "simple");
    //		env.put (Context.SECURITY_PRINCIPAL, "cn=Manager,dc=esnig,dc=ch");
    		env.put (Context.SECURITY_PRINCIPAL, "uid=geiersberger,ou=personne,dc=esnig,dc=ch");
    		env.put (Context.SECURITY_CREDENTIALS, "esnig05");
     
    		// Création de "Initial context"
    		try {
    			DirContext ctx = new InitialDirContext(env); 
     
    			if (args.length>0) {
    				if args[0].equals("principal")
    					System.out.println ("Saisir le dc");
    			}
     
    			// Fermeture de "context"
    			ctx.close();
    		}
    		catch (NamingException e) {
    			System.err.println ("Erreur rencontree : " + e);
    		}
    	}
    }
    Mais en compilant de cette manière, il n'affiche tjrs rien ...

    javac Client.java
    java Client principal

    Est-ce que mes lignes de compilation sont correctes ?

    Merci encore...

  15. #15
    Membre régulier Avatar de venegan
    Inscrit en
    Mars 2005
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 72
    Points : 70
    Points
    70
    Par défaut
    Que te donnes un System.out.println(args[0])?

  16. #16
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Il m'affiche : principal

  17. #17
    Membre régulier Avatar de venegan
    Inscrit en
    Mars 2005
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 72
    Points : 70
    Points
    70
    Par défaut
    Etonnant ! et avec ces modifs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    [color=red]System.out.println (args.length);[/color]
    if (args.length>0) { 
                if [color=red]([/color]args[0].equals("principal") [color=red])[/color]
                   System.out.println ("Saisir le dc"); 
             }

  18. #18
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    En fait j'ai trouvé l'erreur. J'avais oublié une ( dans mon if !

    Alors ça marche. Merci...

    Mais j'ai encore une autre question :

    Comment dois-je faire pour récupérer ce que j'ai saisi au clavier. Par exemple, lorsque je saisis le dn ?

  19. #19
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  20. #20
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 157
    Points : 43
    Points
    43
    Par défaut
    Merci pour l'info...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. passer un objet en tant qu'argument dans la ligne de commande
    Par skoobi dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/11/2014, 22h42
  2. arguments dans la ligne de commande
    Par fredericbdr dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 09/12/2009, 18h12
  3. Réponses: 0
    Dernier message: 09/02/2009, 18h39
  4. Smbclient mettre le mot de passe dans la ligne de commande
    Par EpOnYmE187 dans le forum Réseau
    Réponses: 2
    Dernier message: 28/07/2005, 19h39
  5. Récuperer Arguments sur la ligne de commande ?
    Par Muetdhiver dans le forum x86 16-bits
    Réponses: 9
    Dernier message: 20/01/2003, 21h01

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