java -D VM启动参数含义
-D<name>=<value> : set a system property 设置系统属性。
官方解释:
Set a system property value. If value is a string that contains spaces, you must enclose the string in double quotes
设置一个系统属性值,如果值是字符串包含了空格,则必须添加双引号
1.java -D参数简化加入多个jar
java命令引入jar时可以-cp参数,但时-cp不能用通配符(多个jar时什么烦要一个个写,不能*.jar),面通常的jar都在同一目录,且多于1个。)-Djava.ext.dirs 就可以解决 多个jar的问题
如:
# 运行MyClass的主函数时,添加java.ext.dirs属性的值为lib,即将lib中的jar包加入到这个即将启动的java进程中
java -Djava.ext.dirs=lib MyClass
2.可以在运行前配置一些属性,比如其他属性
java -Dconf1="wqbin" Myclass
可以通过System.getProperty("conf1");获得这个值
也可以从idea上看:
3.补充Standard System Properties
Key | Meaning |
---|---|
"file.separator" |
Character that separates components of a file path. This is "/ " on UNIX and "\ " on Windows. |
"java.class.path" |
Path used to find directories and JAR archives containing class files. Elements of the class path are separated by a platform-specific character specified in the path.separator property. |
"java.home" |
Installation directory for Java Runtime Environment (JRE) |
"java.vendor" |
JRE vendor name |
"java.vendor.url" |
JRE vender URL |
"java.version" |
JRE version number |
"line.separator" |
Sequence used by operating system to separate lines in text files |
"os.arch" |
Operating system architecture |
"os.name" |
Operating system name |
"os.version" |
Operating system version |
"path.separator" |
Path separator character used in java.class.path |
"user.dir" |
User working directory |
"user.home" |
User home directory |
"user.name" |
User account name |
4.测试
设置虚拟机启动参数
测试代码
public class AppRun {
public static void main(String[] args) {
System.out.println("----------------------------------------------------------------");
String test = System.getProperty("test");
System.out.println("VMoptions -Dtest=" + test);
System.out.println("Program arguments(程序入口主函数main(String[] args)接收到的参数值)");
for (String arg : args) {
System.out.println(arg);
}
}
}
IDEA控制台输出