Salut,
Envoyé par
Mathieu.J
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 :
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 :
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 :
java -cp monjar.jar "$@" --context=dev
a++
Partager