Skip to main content
 首页 » 编程设计

介绍Java -D 命令行参数

2022年07月19日144pengyingh

介绍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
阅读延展