Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将系统属性传递到jar文件_Java_Maven_Properties_Jar_System - Fatal编程技术网

Java 如何将系统属性传递到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

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

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

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
不起作用。