在开发过程中我们使用开源工具经常会用到在启动命令时候加入一个 -Dxxx 类型的参数。到底-Dxxx是干什么用的了。
官方文档
地址:文档地址
java命令使用
下面是来源于官方文档:
java [options] classname [args]
java [options] -jar filename [args]optionsCommand-line options separated by spaces. See Options.
classnameThe name of the class to be launched.filenameThe name of the Java Archive (JAR) file to be called. Used only with the -jar option.argsThe arguments passed to the main() method separated by spaces.
java [选项]类名[参数]
java [选项] -jar 文件名[参数]
选项
命令行选项以空格分隔。请参阅选项。
classname
要启动的类的名称。
文件名
要调用的 Java Archive (JAR) 文件的名称。仅与选项一起使用-jar。
参数
传递给方法的参数main()以空格分隔。
描述
该java命令启动 Java 应用程序。它通过启动 Java 运行时环境 (JRE)、加载指定的类并调用该类的main()方法来实现此目的。该方法必须声明为public和static,它不能返回任何值,并且必须接受String数组作为参数。方法声明具有以下形式:
公共静态无效主(字符串[]参数)
该命令可用于通过加载具有方法或扩展的java类来启动 JavaFX 应用程序。在后一种情况下,启动器构造该类的实例,调用其方法,然后调用该方法。main()javafx.application.ApplicationApplicationinit()start(javafx.stage.Stage)
默认情况下,不是java命令选项的第一个参数是要调用的类的完全限定名称。如果-jar指定了该选项,则其参数是包含应用程序的类和资源文件的 JAR 文件的名称。启动类必须由其源代码中的清单标头指示Main-Class。
JRE 在三组位置中搜索启动类(以及应用程序使用的其他类):引导类路径、已安装的扩展以及用户的类路径。
类文件名或 JAR 文件名后面的参数将传递给该main()方法。
options分类
该java命令支持多种选项,可分为以下几类:
- Standard Options 标准选项
- Non-Standard Options 非标准选项
- Advanced Runtime Options 高级运行时选项
- Advanced JIT Compiler Options 高级 JIT 编译器选项
- Advanced Serviceability Options 高级适用性选项
- Advanced Garbage Collection Options 高级垃圾收集选项
-D 选项
-D 就属于Standard Options( 标准选项)中的一个
官网解释
-Dproperty=value
Sets a system property value. The property variable is a string with no spaces that represents the name of the property. The value variable is a string that represents the value of the property. If value is a string with spaces, then enclose it in quotation marks (for example -Dfoo="foo bar"
).
-D属性=值
设置系统属性值。属性变量是一个不带空格的字符串,表示属性的名称。value变量是表示属性值的字符串。如果value是带有空格的字符串,则将其括在引号中(例如-Dfoo="foo bar"
)。
执行Java命令 也能看到如下图:
测试-D参数
@Slf4j
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);log.info("======== -D 参数 : {} ",System.getProperty("testDParam"));}}
在开发工具中配置-D参数
启动
命令启动
java -DtestDParam="chengxuyuanshitang" -jar app.jar