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

相关文章

  • Springboot读取配置文件及自定义配置文件的方法

    Springboot读取配置文件及自定义配置文件的方法

    这篇文章主要介绍了Springboot读取配置文件及自定义配置文件的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-12-12
  • 解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题

    解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题

    这篇文章主要介绍了解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 关于Spring总结(必看篇)

    关于Spring总结(必看篇)

    下面小编就为大家带来一篇关于Spring总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • java的三种随机数生成方式的实现方法

    java的三种随机数生成方式的实现方法

    这篇文章主要介绍了java的三种随机数生成方式的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • java文件上传(单文件 多文件)与删除

    java文件上传(单文件 多文件)与删除

    本文主要分享了java文件上传(单文件 多文件)与删除的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • java用applet画图用到的方法(涉及双缓冲)

    java用applet画图用到的方法(涉及双缓冲)

    这篇文章主要介绍了java用applet画图用到的方法(涉及双缓冲),然后作为基础的基础的基础,必须学习如何让键盘与界面进行交互。下面就是对一个基础得不能再基础的applet程序,需要的朋友可以参考下
    2019-06-06
  • IDEA中的.iml文件和.idea文件夹

    IDEA中的.iml文件和.idea文件夹

    这篇文章主要介绍了IDEA中的.iml文件和.idea文件夹,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • springboot整合mybatis分页拦截器的问题小结

    springboot整合mybatis分页拦截器的问题小结

    springboot整合mybatis分页拦截器,分页拦截实际上就是获取sql后将sql拼接limit,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-07-07
  • Java基本数据类型存储在JVM中的存储位置介绍

    Java基本数据类型存储在JVM中的存储位置介绍

    这篇文章主要介绍了Java基本数据类型存储在JVM中的存储位置,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 使用Java实现6种常见负载均衡算法

    使用Java实现6种常见负载均衡算法

    Java负载均衡算法也是分布式系统中的重要组成部分,用于将来自客户端的请求分配到不同的后端服务器上,本文将介绍常见的Java负载均衡算法,轮询法、加权随机法……一次性让你了解 6 种常见负载均衡算法
    2023-06-06

最新评论