J'ai une classe principale qui attend certaines propriétés que je transmets en utilisant l'option -D. Je peux y accéder dans mes IDE en les envoyant en tant qu'options VM.
J'emballe cette application dans un fichier jar en utilisant Maven et quand j'essaye ce qui suit:
Java -jar myjar.jar -Denviroment=dev
ou
Java -jar myjar.jar "-Denvironment=dev"
La propriété du système d'environnement n'est pas récupérée.
Des conseils sur ce qui se passe?
Passez les arguments avant le -jar
. Si vous les transmettez après le fichier jar, ils sont interprétés comme des paramètres de ligne de commande et transmis au String[] args
dans main
. Comme,
Java -Denviroment=dev -jar myjar.jar
Pour ajouter à la réponse d'Elliott, si je lance juste ceci, j'obtiens une erreur:
Java -Djna.nosys=true -jar jenkins.war
mais si j'ajoute des citations comme ça, alors ça marche:
Java "-Djna.nosys=true" -jar jenkins.war