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

相关推荐
我真的是大笨蛋3 小时前
K8S-Pod(下)
java·笔记·云原生·容器·kubernetes
碳水加碳水3 小时前
Java代码审计实战:XML外部实体注入(XXE)深度解析
java·安全·web安全·代码审计
努力也学不会java4 小时前
【设计模式】 原型模式
java·设计模式·原型模式
方渐鸿5 小时前
【2024】k8s集群 图文详细 部署安装使用(两万字)
java·运维·容器·kubernetes·k8s·运维开发·持续部署
学亮编程手记5 小时前
K8S v1.33 版本主要新特性介绍
java·容器·kubernetes
Haven-6 小时前
Java-面试八股文-JVM篇
java·jvm·面试
我真的是大笨蛋6 小时前
JVM调优总结
java·jvm·数据库·redis·缓存·性能优化·系统架构
wjs0406 小时前
Git常用的命令
java·git·gitlab
superlls7 小时前
(算法 哈希表)【LeetCode 349】两个数组的交集 思路笔记自留
java·数据结构·算法
honder试试7 小时前
焊接自动化测试平台图像处理分析-模型训练推理
开发语言·python