如何将系统属性传递给jar文件

arj*_*unj 48 java jar properties system maven

我有一个主类,它期望我使用-D选项传递的某些属性.我可以通过将它们作为VM选项发送到我的IDE中来访问它.

我使用Maven将此应用程序打包到一个jar文件中,当我尝试以下操作时:

java -jar myjar.jar -Denviroment=dev

要么

java -jar myjar.jar "-Denvironment=dev"

环境系统属性没有被提升.

有关正在发生的事情的任何指示?

Ell*_*sch 88

在之前传递参数-jar.如果在jar文件之后传递它们,它们将被解释为命令行参数并传递给String[] argsin main.喜欢,

java -Denviroment=dev -jar myjar.jar 
Run Code Online (Sandbox Code Playgroud)


Chi*_*hin 7

添加到Elliott的答案中,如果我只是运行此代码,则会收到错误消息:

java -Djna.nosys=true -jar jenkins.war
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加这样的引号,那么它会起作用:

java "-Djna.nosys=true" -jar jenkins.war
Run Code Online (Sandbox Code Playgroud)

  • 另一件要记住的事情是,不要使用大写变量名,例如“-DSPRING_PROFILES_ACTIVE=development”将不起作用。 (2认同)