How to pass system properties to a jar file
I have a main class that expects certain properties that I pass using the -D option. I can access this in my IDE by sending them as VM options.
I package this application into a jar file using Maven and when I try the following:
java -jar myjar.jar -Denviroment=dev
or
java -jar myjar.jar "-Denvironment=dev"
The enviroment system property is not getting picked up.
Any pointers on what is going on?
Solution 1:
Pass the arguments before the -jar
. If you pass them after the jar file they are interpreted as command line parameters and passed to the String[] args
in main
. Like,
java -Denviroment=dev -jar myjar.jar
Solution 2:
Adding to Elliott's answer, if I just run this then I get an error:
java -Djna.nosys=true -jar jenkins.war
but if I add quotes like this then it works:
java "-Djna.nosys=true" -jar jenkins.war