介绍Java -D 命令行参数
我们在ide中执行程序经常需要设置VM参数,运行maven命令也需要设置参数,都是通过-D设置参数值。本文带你了解-D命令行参数。
1. 什么是Java -D命令行参数
参考官方文档的描述:
语法:-Dproperty=value
设置系统属性值。如果字符串包括空格,则必须使用双引号括起来。如:java -Dfoo=“some string”
-D是用于设置环境属性值的重要方式。JVM运行时包括很多系统属性,我们可以通过-D选项配置系统属性,并在D后面紧接着属性名称和等号,然后是分配给属性的值。例如,设置Java运行时文件编码属性为utf-8,您可以设置以下属性:
java -Dfile.encoding=utf-8
然后通过下面代码获取其值:System.getProperty("file.encoding");
需要提醒的是一定是大写字母D。java以及设置了一些默认属性,如:file.encoding, file.separator, java.home and java.version等。
2. 设置命令行参数示例
前面以及说了如何设置并获取参数,下面通过示例进一步说明。
public class Greeting{
public static void main(String[] args) {
String property = "hello";
String value = System.getProperty(property);
System.out.println(property + "=" + Objects.toString(value, "未设置参数"));
}
}
这里使用Objects.toString方法获取默认值,下面在命令行下编译运行:
javac Greeting.java
java -Dhello=world Greeting
输出结果为:
hello=world
当然也可以在IDE中直接通过vm设置值。
3. 设置多个属性值
语法:
java -Darg1=foo1 -Darg2=foo2 -Darg3=foo3 com.MyClass
参数都是文本,也可以一次性设置:
java -Darg=key1:val1,key2:val2,key3:val3 com.MyClass
那么需要自己进行解析key1:val1,key2:val2,key3:val3
。
4. 总结
本文介绍了Java -D 命令行参数。通过示例介绍如何设置、获取参数值。
本文参考链接:https://blog.csdn.net/neweastsun/article/details/109557014