java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java 命令行参数--与-D

Java中命令行参数--与-D的区别

作者:ThinkStu

本文主要介绍了Java中命令行参数--与-D的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、java -D

java -Dmy.name=张三这种方式添加的参数是jvm的一些属性。此种方式添加的参数可以通过如下方式获取:

System.getProperties("my.name")

二、java –

java --my.address=北京东城区这种方式添加的参数是操作系统的环境变量。可以通过如下方式获取

System.getEnv("my.address");

我们要想了解这两者之间的差异,首先来看一个案例:

# 以应用参数的方式
java -jar my.jar --server.port=7788
# 或以 JDK 参数的方式
java -Dserver.port=7788 -jar my.jar

这两个命令都可以用来设置Spring Boot应用程序的端口号为7788,其中:

这两种方式都可以实现相同的目标,但差别如下:

在实践中,-D 用于设置系统属性,而 – 用于设置应用程序选项或参数。大多数情况下建议使用 --server.port 选项来设置 Spring Boot 应用程序的端口号,因为它更方便和直观,而且只适用于应用程序本身,避免了可能会影响其他 Java 应用程序的系统属性冲突。

 三、在springboot中的应用

springboot项目,启动时,通过-D或者 --添加参数,可以直接覆盖yml配置文件中的同名配置,如果yml中没有,那么相当于添加一个配置。

添加的参数名字为spring.application.name和SPRING_APPLICATION_NAME是一样的

在docker中,docker run -e "server.port"用-e操作指定的参数,将成为容器的环境变量,从而就指定了容器启动的端口号。

到此这篇关于Java中命令行参数--与-D的区别的文章就介绍到这了,更多相关Java 命令行参数--与-D内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文