Java 如何将系统属性传递到jar文件
我有一个主类,它期望使用-D选项传递某些属性。我可以在IDE中通过将它们作为VM选项发送来访问它们 我使用Maven将此应用程序打包到一个jar文件中,并尝试以下操作:Java 如何将系统属性传递到jar文件,java,maven,properties,jar,system,Java,Maven,Properties,Jar,System,我有一个主类,它期望使用-D选项传递某些属性。我可以在IDE中通过将它们作为VM选项发送来访问它们 我使用Maven将此应用程序打包到一个jar文件中,并尝试以下操作: java-jar-myjar.jar-Denviroment=dev 或 java-jarmyjar.jar“-Denvironment=dev” 未拾取环境系统属性 有关于发生了什么的指针吗?在-jar之前传递参数。如果在jar文件之后传递它们,它们将被解释为命令行参数,并传递到main中的String[]args。像 jav
java-jar-myjar.jar-Denviroment=dev
或
java-jarmyjar.jar“-Denvironment=dev”
未拾取环境系统属性
有关于发生了什么的指针吗?在
-jar
之前传递参数。如果在jar文件之后传递它们,它们将被解释为命令行参数,并传递到main
中的String[]args
。像
java -Denviroment=dev -jar myjar.jar
再加上Elliott的回答,如果我只是运行这个,那么我会得到一个错误:
java -Djna.nosys=true -jar jenkins.war
但如果我加上这样的引号,它就会起作用:
java "-Djna.nosys=true" -jar jenkins.war
我能弄明白这一点。只是为了帮助别人。我所做的就是在jar之前传递-D,如下所示:java-jar-Denvironment=dev myjar.jar(不确定这会有什么不同!)
-jar myjar.jar应该最后添加-D
见下面的答案这是有效的。我使用了sudojava-Dspring.datasource.url=jdbc:mysql://localhost:3306/demodb?useSSL=false -Dspring.datasource.username=root-Dspring.datasource.password=test1234-jar backend-0.0.1-SNAPSHOT.jar
从命令行运行spring启动应用程序非常感谢!要记住的另一件事是,不要使用大写的变量名,例如-DSPRING\u PROFILES\u ACTIVE=development
不起作用。