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

 更新时间:2023年06月21日 10:30:17   作者: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,其中:

  • 第一个命令使用 --server.port 选项来设置应用程序的端口号
  • 第二个命令使用 -Dserver.port 选项来设置系统属性

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

  • 使用 --server.port 选项可以直接将端口号作为应用程序的选项传递,而使用 -Dserver.port 需要将端口号作为系统属性传递。
  • -server.port 选项仅适用于 Spring Boot 应用程序,而 -Dserver.port 选项适用于任何Java应用程序。
  • –server.port 选项应该在 java -jar 命令之后使用,而 -Dserver.port 选项应该在 -jar 命令前使用。

在实践中,-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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java数据结构之红黑树的原理及实现

    Java数据结构之红黑树的原理及实现

    红黑树是一种特殊的二叉查找树,每个结点都要储存位表示结点的颜色,或红或黑。本文将通过示例为大家详细讲讲红黑树的原理及Java实现,感兴趣的可以了解一下
    2022-09-09
  • javaSwing写关闭窗口的提示框实例

    javaSwing写关闭窗口的提示框实例

    这篇文章主要介绍了javaSwing写关闭窗口的提示框实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Springboot es包版本异常解决方案

    Springboot es包版本异常解决方案

    这篇文章主要介绍了springboot 项目依赖 es包版本异常,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • springboot2.0 @Slf4j log 彩色日志配置输出到文件

    springboot2.0 @Slf4j log 彩色日志配置输出到文件

    这篇文章主要介绍了springboot2.0 @Slf4j log日志配置输出到文件(彩色日志),解决方式是使用了springboot原生自带的一个log框架,结合实例代码给大家讲解的非常详细,需要的朋友可以参考下
    2023-08-08
  • Java实战之用Swing实现通讯录管理系统

    Java实战之用Swing实现通讯录管理系统

    今天给大家带来的是Java实战的相关知识,文章围绕着Swing实现通讯录管理系统展开,文中有非常详细的代码示例,需要的朋友可以参考下
    2021-06-06
  • Spring中的ImportBeanDefinitionRegistrar接口详解

    Spring中的ImportBeanDefinitionRegistrar接口详解

    这篇文章主要介绍了Spring中的ImportBeanDefinitionRegistrar接口详解,ImportBeanDefinitionRegistrar接口是也是spring的扩展点之一,它可以支持我们自己写的代码封装成BeanDefinition对象,注册到Spring容器中,功能类似于注解@Service @Component,需要的朋友可以参考下
    2023-09-09
  • Mybatis动态SQL之where标签用法说明

    Mybatis动态SQL之where标签用法说明

    这篇文章主要介绍了Mybatis动态SQL之where标签用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • SpringBoot使用Nacos动态配置数据源的方法

    SpringBoot使用Nacos动态配置数据源的方法

    这篇文章主要介绍了SpringBoot使用Nacos动态配置数据源的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Hibernate validator使用以及自定义校验器注解

    Hibernate validator使用以及自定义校验器注解

    这篇文章主要介绍了Hibernate validator使用以及自定义校验器注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Java8新特性Stream流实例详解

    Java8新特性Stream流实例详解

    Stream流是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。这篇文章主要介绍了Java8新特性Stream流的相关资料,需要的朋友参考下吧
    2017-10-10

最新评论