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. 云图说 | 华为云医疗智能体智联大健康:AI医学影像

    摘要:华为云医疗智能体面向医学影像领域,提供影像智能标注.算法开发和AI辅助诊断服务. 本文分享自华为云社区<[云图说]第208期 医疗智能体 智联大健康:AI医学影像>,原文作者:阅识风 ...

  2. vue2升级vue3:this.$createElement is not a function—动态组件升级

    this.$createElement vue2 动态组件加载,this.$createElement非常好使!比如: import { Component as tsc } from 'vue-ts ...

  3. Axure 安装使用 FontAwesome

    Axure 安装使用 FontAwesome. 字体下载:https://www.bootcss.com/p/font-awesome/ 解压后,到 font 目录,双击 FontAwesome.ot ...

  4. 大数据 - DWD&DIM 行为数据

    我们前面采集的日志数据已经保存到 Kafka 中,作为日志数据的 ODS 层,从 Kafka 的ODS 层读取的日志数据分为 3 类, 页面日志.启动日志和曝光日志.这三类数据虽然都是用户行为数据,但 ...

  5. 压测工具 wrk

    wrk 是一款针对 Http 协议的基准测试工具,它能够在单机多核 CPU 的条件下,使用系统自带的高性能 I/O 机制,如 epoll,kqueue 等,通过多线程和事件模式,对目标机器产生大量的负 ...

  6. NOKOV度量动作捕捉协助完成无人机室内定位研究

    随着工业发展.技术进步,无人机的使用在各行各业愈发普遍,开始出现无人机飞行送外卖.智能无人机自主巡检等多方面应用.在这一过程中,无人机飞行定位就成为了重中之重. 西北工业大学无人机特种技术国防科技重点 ...

  7. 【django-vue】登录注册模态框分析 登录注册前端页面 腾讯短信功能二次封装 短信验证码接口 短信登录接口 短信注册接口

    目录 昨日回顾 csrf跨站请求伪造 接口幂等性 异常捕获 今日内容 1 登录注册模态框分析 Login.vue Header.vue 2 登录注册前端页面复制 2.0 Header.vue 2.1 ...

  8. 面试官:分库分表后如何生成全局ID?

    分库分表后就不能使用自增 ID 来作为表的主键了,因为数据库自增 ID 只适用于单机环境,但如果是分布式环境,是将数据库进行分库.分表或数据库分片等操作时,那么数据库自增 ID 就会生成重复 ID,从 ...

  9. WPF 水印装饰器

    使用AdornerDecorator装饰器实现WPF水印 水印装饰器WatermarkAdorner类代码: using System; using System.Collections.Generi ...

  10. Sentinel 是如何做限流的

    限流是保障服务高可用的方式之一,尤其是在微服务架构中,对接口或资源进行限流可以有效地保障服务的可用性和稳定性. 之前的项目中使用的限流措施主要是Guava的RateLimiter.RateLimite ...