https://www.cnblogs.com/limeiyang/p/16565920.html

1. -d 参数说明

通过 java -h 查看可知:

注意:
-D= : set a system property 设置系统属性。
如果value是一个包含空格的字符串,则必须将该字符串括在双引号中。
需要设置的是JVM参数而不是program参数
使用此参数的参数优先级最高,会覆盖项目中配置的此项

例如: springboot 项目中的 yaml 配置,可以通过此参数进行覆盖:
-Dspring.datasource.password=123456
可以覆盖:

spring:
datasource:
password: 123456

2. 其他相关参数

3. idea 设置的位置


4. 系统属性和环境变量的区别

  • 系统属性是指 JVM 中属性变量;环境变量是操作系统层面的变量
// 在java.lang.System这个类中提供了两个方法
getenv() // 获取操作系统中的环境变量
getProperties() // 获取 JVM 中的 系统属性
  • 变量的操作

环境变量的操作有两种方法

  1. 通过windows界面设置 变量会一直存在
  2. DOS命令set设置(这些变量只是在当前DOS环境中存在一旦关闭则消失)
    比如在脚本中添加 set parm=KKKK 则在当前操作界面就可以使用这个变量
    在当前脚本执行的程序中可以通过getenv("parm")来获得其值
    (注意一旦脚本运行完毕 或 DOS窗口关闭则这些的环境变量则也会取消 )

例子:

// 脚本内容
@echo off
set we=k
java zk // zk.class的源码为
public class zk{
public static void main(String[] args){
String value = System.getenv("we");
System.out.print(value);
}
}

系统属性操作有两种方法

  1. 在程序中通过setProperty(key,name) getProperty(key)来设置
  2. 第二通过命令或脚本设置
    重点讲解这个因为在一些脚本语言中大家经常会无意见到这些设置
    却不理解是干什么用的,下面通过一个例子演示脚本中的使用
    Java 系统变量主要是用于给main方法传参数

用法如下:

// 命令格式
java -D= xx name:系统属性键 value:值 xx:java命令要运行的类名如果要设置多个参数
java -D= -D= ..xx name // 脚本内容
@echo off
java -Duu="HelloWorld" ParamTest // 注意:java -Duu=HelloWord ParamTest 去掉双引号也可以 但值不可包含空格否则
// 会把空格之后作为类名 如 Hello World 则会把World作为类名来处理 // ParamTest.class源码为:
public class ParamTest{
public static void main(String[] args){
String param = System.getProperty("uu");
Systeem.out.print(param);
}
}
//当在脚本或命令行执行命令时 结果为“HelloWorld”

5. 参考

https://www.jianshu.com/p/eda395fe12d1
系统属性和环境变量的区别

[转帖]java -d 参数(系统属性) 和 环境变量的更多相关文章

  1. java中获取系统属性以及环境变量

    java中获取系统属性以及环境变量 System.getEnv()和System.getProperties()的差别 从概念上讲,系统属性 和环境变量 都是名称与值之间的映射.两种机制都能用来将用户 ...

  2. Java获取系统属性及环境变量

    当程序中需要使用与操作系统相关的变量(例如:文件分隔符.换行符)时,Java提供了System类的静态方法getenv()和getProperty()用于返回系统相关的变量与属性,getenv方法返回 ...

  3. Spring中如何向 Bean注入系统属性或环境变量

    [转自] http://unmi.cc/spring-injection-system-properties-env/ 在 Spring 中为 javabean 注入属性文件中的属性值一般人都知道的, ...

  4. JVM系统属性 OS环境变量 JVM启动参数

    JVM系统属性(System Properties) 1.不支持通过文件查看和设置系统属性 2.可以通过JDK自带的工具jvisulavm.exe查看 3.可以在Java程序中使用API来查看系统属性 ...

  5. java之重装系统重新配置环境变量 jdk、eclipse、idea、Oracle、svn、gitlab等环境变量的安装

    前言:由于公司电脑进行统一版本升级,需要重装系统(只对C盘做升级),记录一下踩过的坑! 首先理一下思路,看那些东西需要做: 1.jdk及其环境变量 2.eclipse(文件夹版的需要运行项目进行测试) ...

  6. maven中可以直接引用的java系统属性和环境变量属性

    一.查看命令: 1 mvn help :system 二.引用 在pom文件中通过 ${变量名}来引用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  7. Java起源、发展历程、环境变量、第一个Java程序等【1】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果,转载请标明原文链接: 本文原创作者:pipi-changing 本文原创出处:http://www.cnblogs.com/pi ...

  8. Windows系统中path环境变量详解

    在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH.正确地配置这些环境变量,是能够顺利学习.开发的前提.而经常出现的问题是:有的学习者能够按照提示 ...

  9. Java学习之道:jdk环境变量配置方法

    JDK(Java Development Kit)是整个Java的核心,包含了Java执行环境.Java工具和Java基础类库.JDK作为JAVA开发的环境,无论是做JAVA开发还是做安卓开发,都必须 ...

  10. Java入门 手把手教你配置环境变量

    很多人觉得配置Java开发的环境变量很麻烦,很容易忘记,时常被它搞得晕头转向.如果出现这样的情况,那么原因只有一个,你不了解为毛需要配置环境变量,不配置环境变量就不能开发了吗? 答案是:NO!,那么下 ...

随机推荐

  1. FQS:一种神奇的数仓查询优化技术

    本文分享自华为云社区<根据执行计划优化SQL[绽放吧!GaussDB(DWS)云原生数仓]>,作者:西岭雪山. 引言 如果您刚接触DWS那一定会好奇想要知道"REMOTE_FQS ...

  2. GaussDB(DWS)字符串处理函数返回错误结果集排查

    摘要:在使用字符串处理函数时,有时会出现非预期结果的场景.在排除使用问题后,应该从encoding和数据本身开始排查. 本文分享自华为云社区<GaussDB(DWS)字符串处理函数返回错误结果集 ...

  3. 洞见商业新机,云原生数据库GaussDB让企业决策更科学

    摘要:华为云GaussDB(for Redis)为数位科技打造了一个稳定可靠.高效安全.卓越性能的大数据引擎,KV存储降本80%,助力实体企业数字化转型之路走的更加稳健. 本文分享自华为云社区< ...

  4. 云图说|一张图看懂一站式DevOps利器——华为云DevCloud

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 华为云DevCl ...

  5. 教你用ab命令进行并发与压力测试

    摘要:今天给大家分享一篇如何使用ab进行并发与压力测试的文章 本文分享自华为云社区<[高并发]如何使用ab进行并发与压力测试?>,作者:冰 河. 今天给大家分享一篇如何使用ab进行并发与压 ...

  6. Seal梁胜:近水楼台先得月,IT人员应充分利用AI解决问题

    2023年9月2日,由平台工程技术社区与数澈软件Seal联合举办的⌈AIGC时代下的平台工程⌋--2023平台工程技术大会在北京圆满收官.吸引了近300名平台工程爱好者现场参会,超过3000名观众在线 ...

  7. 一个神奇的Python库:Evidently,机器学习必备

    Evidently 是一个面向数据科学家和机器学习工程师的开源 Python 库.它有助于评估.测试和监控从验证到生产的数据和 ML 模型.它适用于表格.文本数据和嵌入. 简介 Evidently 是 ...

  8. Tomcat--多实例

    配置信息 centos:7.8 tomcat:7.0.3 instans1:/usr/local/tomcat/instans1 8081 instans2:/usr/local/tomcat/ins ...

  9. C++ lambda 内 std::move 失效问题的思考

    最近在学习 C++ Move 时,有看到这样一个代码需求:在 lambda 中,将一个捕获参数 move 给另外一个变量. 看似一个很简单常规的操作,然而这个 move 动作却没有生效. 具体代码如下 ...

  10. 解决Github中使用Octotree时,出现 Error: API limit exceeded 报错 或者 Error: Connection error报错的问题(详细操作)

    对于科研工作者来说,Github 是不可多得的利器,那么Octotree 插件的使用将会让用户在使用 Github 时拥有更好的体验,提高学习工作的效率.但是笔者在使用的过程中遇到以下这样的问题,下面 ...