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 分钟前
数据结构——优先级队列(堆)
java·开发语言·数据结构·intellij-idea
好家伙VCC12 分钟前
**全息显示技术的发散创新与深度探索**一、引言随着科技的飞速发展,全息显示技术已成为显示领域的一大研究热点。本文将带你
java·图像处理·python·科技·计算机视觉
步行cgn18 分钟前
Java项目包结构设计与功能划分详解
java·开发语言·架构·mvc
ss27338 分钟前
手写MyBatis第92弹:SqlSource体系、SqlNode树与Trim标签实现原理全揭秘
java·开发语言
2501_915909061 小时前
iOS 抓包工具有哪些?实战对比、场景分工与开发者排查流程
android·开发语言·ios·小程序·uni-app·php·iphone
charlie1145141911 小时前
精读C++设计模式20 —— 结构型设计模式:桥接模式
开发语言·c++·学习·设计模式·桥接模式·c++23·概论
235161 小时前
【LeetCode】46. 全排列
java·数据结构·后端·算法·leetcode·职场和发展·深度优先
_extraordinary_1 小时前
Java Linux --- 基本命令,部署Java web程序到线上访问
java·linux·前端
heyCHEEMS2 小时前
最长连续序列 Java
java·开发语言·算法
MFine2 小时前
Rhythmix(流式数据规则表达式),一行就够了!
java·物联网·数据分析