Java中命令行參數(shù)--與-D的區(qū)別
一、java -D
java -Dmy.name=張三這種方式添加的參數(shù)是jvm的一些屬性。此種方式添加的參數(shù)可以通過如下方式獲取:
System.getProperties("my.name")
二、java –
java --my.address=北京東城區(qū)這種方式添加的參數(shù)是操作系統(tǒng)的環(huán)境變量??梢酝ㄟ^如下方式獲取
System.getEnv("my.address");
我們要想了解這兩者之間的差異,首先來看一個案例:
# 以應用參數(shù)的方式 java -jar my.jar --server.port=7788 # 或以 JDK 參數(shù)的方式 java -Dserver.port=7788 -jar my.jar
這兩個命令都可以用來設置Spring Boot應用程序的端口號為7788,其中:
- 第一個命令使用 --server.port 選項來設置應用程序的端口號
- 第二個命令使用 -Dserver.port 選項來設置系統(tǒng)屬性
這兩種方式都可以實現(xiàn)相同的目標,但差別如下:
- 使用 --server.port 選項可以直接將端口號作為應用程序的選項傳遞,而使用 -Dserver.port 需要將端口號作為系統(tǒng)屬性傳遞。
- -server.port 選項僅適用于 Spring Boot 應用程序,而 -Dserver.port 選項適用于任何Java應用程序。
- –server.port 選項應該在 java -jar 命令之后使用,而 -Dserver.port 選項應該在 -jar 命令前使用。
在實踐中,-D 用于設置系統(tǒng)屬性,而 – 用于設置應用程序選項或參數(shù)。大多數(shù)情況下建議使用 --server.port 選項來設置 Spring Boot 應用程序的端口號,因為它更方便和直觀,而且只適用于應用程序本身,避免了可能會影響其他 Java 應用程序的系統(tǒng)屬性沖突。
三、在springboot中的應用
springboot項目,啟動時,通過-D或者 --添加參數(shù),可以直接覆蓋yml配置文件中的同名配置,如果yml中沒有,那么相當于添加一個配置。
添加的參數(shù)名字為spring.application.name和SPRING_APPLICATION_NAME是一樣的
在docker中,docker run -e "server.port"用-e操作指定的參數(shù),將成為容器的環(huán)境變量,從而就指定了容器啟動的端口號。
到此這篇關于Java中命令行參數(shù)--與-D的區(qū)別的文章就介紹到這了,更多相關Java 命令行參數(shù)--與-D內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決MultipartFile.transferTo(dest) 報FileNotFoundExcep的問題
這篇文章主要介紹了解決MultipartFile.transferTo(dest) 報FileNotFoundExcep的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07java的三種隨機數(shù)生成方式的實現(xiàn)方法
這篇文章主要介紹了java的三種隨機數(shù)生成方式的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09Java基本數(shù)據(jù)類型存儲在JVM中的存儲位置介紹
這篇文章主要介紹了Java基本數(shù)據(jù)類型存儲在JVM中的存儲位置,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07