Search code examples
javamavenpropertiesjarsystem

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

  • 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