java启动命令中-D和--的区别

java启动命令中-D和--的区别

在 SpringBoot 项目中,启动时,通过 -D-- 添加参数,都可以直接覆盖 ymlproperties 配置文件中的同名配置,如果不存在则相当于添加了一个配置。

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系统参数>系统全局变量

相关推荐
朝新_1 小时前
【多线程初阶】阻塞队列 & 生产者消费者模型
java·开发语言·javaee
立莹Sir1 小时前
Calendar类日期设置进位问题
java·开发语言
风逸hhh2 小时前
python打卡day46@浙大疏锦行
开发语言·python
火兮明兮3 小时前
Python训练第四十三天
开发语言·python
季鸢3 小时前
Java设计模式之状态模式详解
java·设计模式·状态模式
@yanyu6663 小时前
springboot实现查询学生
java·spring boot·后端
ascarl20103 小时前
准确--k8s cgroup问题排查
java·开发语言
magic 2454 小时前
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
java
爱敲代码的憨仔4 小时前
分布式协同自动化办公系统-工作流引擎-流程设计
java·flowable·oa
纪元A梦4 小时前
分布式拜占庭容错算法——PBFT算法深度解析
java·分布式·算法