arjunj
arjunj

Reputation: 1516

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?

Upvotes: 79

Views: 69652

Answers (2)

Chin
Chin

Reputation: 20675

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

Upvotes: 16

Elliott Frisch
Elliott Frisch

Reputation: 201439

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 

Upvotes: 150

Related Questions