Java中命令行參數(shù)--與-D的區(qū)別
一、java -D
java -Dmy.name=張三這種方式添加的參數(shù)是jvm的一些屬性。此種方式添加的參數(shù)可以通過(guò)如下方式獲?。?/p>
System.getProperties("my.name")二、java –
java --my.address=北京東城區(qū)這種方式添加的參數(shù)是操作系統(tǒng)的環(huán)境變量。可以通過(guò)如下方式獲取
System.getEnv("my.address");我們要想了解這兩者之間的差異,首先來(lái)看一個(gè)案例:
# 以應(yīng)用參數(shù)的方式 java -jar my.jar --server.port=7788 # 或以 JDK 參數(shù)的方式 java -Dserver.port=7788 -jar my.jar
這兩個(gè)命令都可以用來(lái)設(shè)置Spring Boot應(yīng)用程序的端口號(hào)為7788,其中:
- 第一個(gè)命令使用 --server.port 選項(xiàng)來(lái)設(shè)置應(yīng)用程序的端口號(hào)
- 第二個(gè)命令使用 -Dserver.port 選項(xiàng)來(lái)設(shè)置系統(tǒng)屬性
這兩種方式都可以實(shí)現(xiàn)相同的目標(biāo),但差別如下:
- 使用 --server.port 選項(xiàng)可以直接將端口號(hào)作為應(yīng)用程序的選項(xiàng)傳遞,而使用 -Dserver.port 需要將端口號(hào)作為系統(tǒng)屬性傳遞。
- -server.port 選項(xiàng)僅適用于 Spring Boot 應(yīng)用程序,而 -Dserver.port 選項(xiàng)適用于任何Java應(yīng)用程序。
- –server.port 選項(xiàng)應(yīng)該在 java -jar 命令之后使用,而 -Dserver.port 選項(xiàng)應(yīng)該在 -jar 命令前使用。
在實(shí)踐中,-D 用于設(shè)置系統(tǒng)屬性,而 – 用于設(shè)置應(yīng)用程序選項(xiàng)或參數(shù)。大多數(shù)情況下建議使用 --server.port 選項(xiàng)來(lái)設(shè)置 Spring Boot 應(yīng)用程序的端口號(hào),因?yàn)樗奖愫椭庇^,而且只適用于應(yīng)用程序本身,避免了可能會(huì)影響其他 Java 應(yīng)用程序的系統(tǒng)屬性沖突。
三、在springboot中的應(yīng)用
springboot項(xiàng)目,啟動(dòng)時(shí),通過(guò)-D或者 --添加參數(shù),可以直接覆蓋yml配置文件中的同名配置,如果yml中沒(méi)有,那么相當(dāng)于添加一個(gè)配置。
添加的參數(shù)名字為spring.application.name和SPRING_APPLICATION_NAME是一樣的
在docker中,docker run -e "server.port"用-e操作指定的參數(shù),將成為容器的環(huán)境變量,從而就指定了容器啟動(dòng)的端口號(hào)。
到此這篇關(guān)于Java中命令行參數(shù)--與-D的區(qū)別的文章就介紹到這了,更多相關(guān)Java 命令行參數(shù)--與-D內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA代碼調(diào)用ffmpeg程序進(jìn)行視頻轉(zhuǎn)碼和推流方式
本文介紹了如何通過(guò)Java代碼調(diào)用FFmpeg進(jìn)行多媒體視頻處理,包括兩種方式:使用第三方封裝的jar包和使用ProcessBuilder類(lèi)創(chuàng)建進(jìn)程,兩種方式各有優(yōu)缺點(diǎn),選擇時(shí)需根據(jù)具體需求和場(chǎng)景2025-02-02
兩個(gè)例子了解java中的回調(diào)機(jī)制
這篇文章主要介紹了Java中回調(diào)機(jī)制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下2021-02-02
深入理解SpringMVC中央調(diào)度器DispatcherServlet
這篇文章主要介紹了SpringMVC核心之中央調(diào)度器DispatcherServlet的相關(guān)知識(shí),包括SpringMVC請(qǐng)求處理過(guò)程及SrpingMVC容器和spring?IOC容器關(guān)系,需要的朋友可以參考下2022-05-05
MyBatis的mapper.xml文件熱加載功能實(shí)現(xiàn)方案
文章分析了Arthas無(wú)法直接熱替換MyBatis的mapper.xml文件的限制,并提出了多種變通方法來(lái)實(shí)現(xiàn)類(lèi)似效果,這些方法包括結(jié)合MyBatis的熱加載功能、使用Arthas和類(lèi)重加載、動(dòng)態(tài)刷新MappedStatement等,文章還建議在不同環(huán)境中使用不同的解決方案,需要的朋友可以參考下2026-02-02

