web-dev-qa-db-fra.com

Comment passer des propriétés système à un fichier JAR

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?

47
arjunj

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 
83
Elliott Frisch

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
4
Chin