java启动命令中-D和--的区别
在 SpringBoot 项目中,启动时,通过 -D
或 --
添加参数,都可以直接覆盖 yml
或 properties
配置文件中的同名配置,如果不存在则相当于添加了一个配置。
1.java -D 添加参数
注意: -D
要放到 -jar 前面,否则参数无效。
shell
java -Dserver.port=1234 -jar test.jar
1.1支持的获取方式
java
System.getPorperties("server.port");
2.java ---- 添加参数
这种方式添加的参数是操作系统的 环境变量
注意: --
要放到 jar 包后面,否则报错。
java -jar test.jar --server.port=1234
2.1支持的获取方式
java
System.getEnv("server.port");
3. -DXX VS --XXX 的优先级
结论:--xx 比
-Dxx`的优先级高
application.yml
yaml
server:
port: 18080
使用-DXX 启动
shell
java -Dserver.port=18081 -jar app.jar
Tomcat started on port(s): 18081 (http) with context path ''
使用--XX 启动
shell
java -jar app.jar --server.port=18082
Tomcat started on port(s): 18082 (http) with context path ''
同时使用-DXX Vs --XX 启动
shell
java -Dserver.port=18081 -jar app.jar --server.port=18082
Tomcat started on port(s): 18082 (http) with context path ''
结论:--xx 比
-Dxx`的优先级高
优先级如下:
--长选项参数>-D系统参数>系统全局变量