有些时候我们需要在java程序启动时设置一些系统属性值,然后程序启动后可以获取这些系统属性值并进行一些逻辑处理。例如我们在使用Maven打包的时候如果想跳过test执行,可以使用如下命令:
mvn clean package -Dmaven.test.skip=true
其中,-D就是用来设置系统属性值的,表示本次构建跳过test。
1、设置系统属性值
使用 -DpropertyName=value 在虚拟机的系统属性中设置属性名/值对,如果value中有空格,则需要用双引号将该值括起来,如-Dmessage=”hello world”。
该参数通常用于设置系统级全局变量值,如配置文件路径,应为该属性在程序中任何地方都可访问。
例如:
java -Dtest=true com.ricky.test.VMArgument
如果value中有空格,需要用双引号将该值括起来
java -Dtest=”hello world” com.ricky.test.VMArgument
如果想指定多个系统属性值
java -Dtest=”hello world” -Dcompile=true com.ricky.test.VMArgument
2、获取系统属性值
通过System.getProperty(String key)获取指定的系统属性值。下面通过一段示例代码来演示。
package com.ricky.java.test.junit;
public class SystemPropertiesTest {
public static void main(String[] args) {
System.out.println(System.getProperty("test"));
}
}
在Run Configurations中Arguments选项卡中指定JVM参数:-Dtest=”hello world”,如下:
点击Run按钮,就能在控制台看到输出hello world了。