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 :

propriété en ligne de commande


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 200
    Points : 67
    Points
    67
    Par défaut propriété en ligne de commande
    Bonjour,
    je voudrais savoir ce que fais la partie --context=dev de la commande ci-dessous. Est-ce que pour passer une variable à java il faut mettre
    java --mavariable=mavaleur
    .
    Est-ce la meme chose que un
    java -Dmavariable=mavaleur
    Ci-dessous le code complet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp monjar.jar --context=dev "$@"

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Les -D sont (en principe) des paramètres de JVM. Ils ne sont pas passés au programme si tu les places ou il faut dans la commande java.

    Les autres oui. Après à toi de les interpréter et de les traiter dans ton programme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Test {
    	public static void main(String[] args) {
    		for(String arg : args) {
    			System.out.println(arg);
    		}
    	  }
    }
    Dans ton cas :
    args[0] vaut "--context=dev"
    et
    args[1] vaut "$@"

  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,

    Citation Envoyé par Mathieu.J Voir le message
    Dans ton cas :
    args[0] vaut "--context=dev"
    et
    args[1] vaut "$@"
    Pas tout à fait !

    Le paramètre --context=dev est passé à la JVM, et non pas au programme Java, et cela génèrera une erreur.


    Le format des commandes java est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java <params-jvm> <programme> <params-programme>
    Où <programme> correspond au nom de la classe principale (ou au nom du jar si tu utilises -jar). En fait cela correspond au premier paramètre qui ne débute pas par un tiret "-".


    Tous les paramètres situés avant <programme> sont passé à la JVM pour la configurer (exemple : -server, -jar, -Xmx512m, -DProperty=Value, ...).
    Tous les paramètres après <programme> sont passé tel quel dans le paramètres String[] de ton main().


    Dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp monjar.jar --context=dev "$@"
    Le nom du programme est "$@", donc
    -cp monjar.jar est interprété par la JVM (pour initialiser le classpath)
    --context=dev est interprété par la JVM, ce qui génèrera une erreur (ce paramètre n'existe pas).


    Pour passer ce paramètre en paramètre du main, il faudrait faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp monjar.jar "$@" --context=dev

    a++

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/10/2011, 11h16
  2. Afficher propriétés fichier en ligne de commande
    Par rolandjarry dans le forum VBScript
    Réponses: 4
    Dernier message: 24/09/2010, 16h16
  3. [TortoiseSVN] appliquer des propriétés au projet via ligne de commande
    Par m_vincent dans le forum Subversion
    Réponses: 2
    Dernier message: 01/08/2009, 13h02
  4. 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
  5. Analyser la ligne de commande
    Par benj29 dans le forum C
    Réponses: 14
    Dernier message: 19/11/2002, 04h13

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