How to pass system properties to a jar file

arjunj picture arjunj · Apr 23, 2015 · Viewed 39.8k times · Source

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?

Answer

Elliott Frisch picture Elliott Frisch · Apr 23, 2015

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