java program arguments 与 vm arguments、Environment varilables
program arguments
program arguments 是传递给我们的 main 程序的,使用 main 程序的 String[] args 来接收。
举例:
java -jar demo.jar --config.p1=v1 config.p2=v2 p3 p4
--config.p1=v1 config.p2=v2 p3 p4 这些用空格隔开的串,全部都会被 args 数组接收并存放
vm arguments
vm arguments 是传给 vm(虚拟机)的系统属性,大致可分为标准(-D)和非标准(-X、-XX)两种。
通常我们使用 -D 来设置 vm 的系统属性,比如:-Dfile.encoding=UTF-8,在程序中可以使用 System.getProperty(key) 来获取对应的值
举例:
java -DvmParam1=v1 -DvmParam2=v2
在程序中可以使用 System.getProperty("vmParam1") 来获取值
https://blog.csdn.net/kimylrong/article/details/17339263
补充:
Environment variables:
OS(操作系统)的环境变量可能通过 System.getenv() 来获取
在 IDEA 中可以使用下面的方式来设置 vm arguments 和 program arguments、Environment variables
补充:
java -jar 来启动应用时,会覆盖 -classpath 参数的值
在启动 springboot 工程时,格外要注意,如果想 java -jar 来启动应用,又想添加额外的 classpath 参数的话,需要使用 -Xbootclasspath/a: 来指定。
参考:https://blog.csdn.net/sayyy/article/details/81120749