我有一个主类,它需要使用-D选项传递的某些属性。我可以通过将它们作为VM选项发送到IDE中来访问它。
我使用Maven将此应用程序打包到一个jar文件中,当我尝试以下操作时:
java -jar myjar.jar -Denviroment=dev
或
java -jar myjar.jar "-Denvironment=dev"
环境系统属性未被提升。
有关正在发生的事情的任何指示?
答案 0 :(得分:74)
在-jar
之前传递参数。如果在jar文件之后传递它们,它们将被解释为命令行参数并传递给String[] args
中的main
。像,
java -Denviroment=dev -jar myjar.jar
答案 1 :(得分:3)
添加到Elliott的答案中,如果我只是运行它,那么我会得到一个错误:
java -Djna.nosys=true -jar jenkins.war
但是,如果我添加这样的引号,那么它会起作用:
java "-Djna.nosys=true" -jar jenkins.war