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

相关推荐
北极糊的狐几秒前
报错java: 找不到符号符号: 类 XxxController位置: 程序包 com.ruoyi.xxx.xxx.service
开发语言·windows·python
云计算小黄同学2 分钟前
Java 服务从虚拟机迁移到 Kubernetes(K8s)集群
java·微服务·云原生·kubernetes
独自破碎E17 分钟前
如何用最短替换让字符串变平衡?
java·开发语言·算法·leetcode
老华带你飞22 分钟前
宠物商城销售|基于Java+ vue宠物商城销售管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·宠物
电饭叔25 分钟前
一个构建指定坐标轴在默认点(0,0)的构造方法《python语言程序设计》2018版--第8章17题第2部分
开发语言·笔记·python
qq_2515335925 分钟前
Python 查找元组中列表的数量
开发语言·python
papership28 分钟前
【C++类的基本概念与定义】
开发语言·c++
计算机学姐28 分钟前
基于Python的在线考试系统【2026最新】
开发语言·vue.js·后端·python·mysql·django·flask
武子康30 分钟前
Java-190 EVCache入门:Netflix 级分布式缓存架构、性能指标与多区域部署全解析
java·redis·分布式·缓存·架构·guava·guava cache
曾几何时`31 分钟前
字符串(七)409. 构造出来的最长回文串
java·前端·javascript