idea如何為java程序添加啟動(dòng)參數(shù)
idea為java程序添加啟動(dòng)參數(shù)
idea為java程序添加啟動(dòng)參數(shù)(program arguments,vm arguments,Environment variable),并在程序中獲取使用
Java啟動(dòng)命令可選項(xiàng)(options)
java啟動(dòng)命令可選項(xiàng)顧名思義就是java啟動(dòng)參數(shù),當(dāng)你不加這個(gè)參數(shù)時(shí) jvm會(huì)選擇默認(rèn)的配置進(jìn)行啟動(dòng)。Java啟動(dòng)命令可選項(xiàng)(options)大致可分為標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)兩種,非標(biāo)準(zhǔn)的可選項(xiàng)不保證在所有平臺(tái)上都實(shí)現(xiàn),并且未來(lái)的版本中可能會(huì)被修改且不告知,總之就是不穩(wěn)定(Unstable)。不過(guò)有的非標(biāo)準(zhǔn)可選項(xiàng)還是非常有用的。
標(biāo)準(zhǔn)可選項(xiàng)(Standard options) 使用最多的就是 -Dkey=value 設(shè)定系統(tǒng)屬性值,比如編碼 -Dfile.encoding=UTF-8
??梢栽O(shè)定一些系統(tǒng)使用的屬性,也可以用來(lái)向程序傳遞一些自定義的參數(shù)。 可以通過(guò)System.getProperty(“keyname”)
來(lái)獲取屬性。
非標(biāo)準(zhǔn)可選項(xiàng)(Nonstandard Options)主要是設(shè)置一些虛擬機(jī)的參數(shù), 非標(biāo)準(zhǔn)的可選項(xiàng)一般都是以 -X 開(kāi)始,同時(shí)他還包含一個(gè)不穩(wěn)定的不穩(wěn)定(Unstable)的選項(xiàng) 不穩(wěn)定的選項(xiàng)一般都是以 -XX 開(kāi)頭。
idea的添加啟動(dòng)參數(shù)的過(guò)程
如下所示:
打開(kāi)需要添加啟動(dòng)參數(shù)的對(duì)話(huà)框
找到你需要的添加啟動(dòng)的參數(shù)的如果沒(méi)有需要自己新建
注意:
VM options
需要以 -D 或 -X 或 -XX 開(kāi)頭,每個(gè)參數(shù)最好使用空格隔開(kāi)。program arguments
每個(gè)參數(shù)需要以空格隔開(kāi)。否則將會(huì)被識(shí)別成一個(gè)參數(shù),自己用的時(shí)候還得手動(dòng)處理。Environment variable
沒(méi)有前綴,優(yōu)先級(jí)低于 VM options ,即如果VM options 有一個(gè)變量和 Environment variable中的變量的key相同,則以VM options 中為準(zhǔn),(如果用命令行啟動(dòng),這個(gè)參數(shù)需要在運(yùn)行java類(lèi)以前使用 set JAVA_HOME=D:\jdk1.8.0_05 這種方式進(jìn)行臨時(shí)修改,這種方式只在當(dāng)前cmd窗口有效,點(diǎn)擊看詳情 [設(shè)置臨時(shí)的java環(huán)境變量][java])。
java提供了System類(lèi)的靜態(tài)方法getenv()和getProperty()用于返回系統(tǒng)相關(guān)的變量與屬性,**getenv()**方法返回的變量大多于系統(tǒng)相關(guān),
getProperty()
方法返回的變量大多與java程序有關(guān)。System.getenv()
方法是獲取指定的環(huán)境變量的值。System.getenv(String name)
接收參數(shù)為任意字符串,當(dāng)存在指定環(huán)境變量時(shí)即返回環(huán)境變量的值,否則返回null。System.getProperty()
是獲取系統(tǒng)的相關(guān)屬性,包括文件編碼、操作系統(tǒng)名稱(chēng)、區(qū)域、用戶(hù)名等,此屬性一般由jvm自動(dòng)獲取,不能設(shè)置。System.getProperty(String key)
接收參數(shù)為任意字符串,當(dāng)存在指定屬性時(shí)即返回屬性的值,否則返回null。
public class MyTest { //*program arguments 其實(shí)就是對(duì)應(yīng)的args參數(shù) public static void main(String[] args) { //打印傳進(jìn)來(lái)的 program arguments for (String arg : args) { System.out.println(arg); } //獲取java相關(guān)的環(huán)境變量 String myVMarg = System.getProperty("MyVMarg"); System.out.println("System.getProperty(\"MyVMarg\")----->"+myVMarg); Properties properties = System.getProperties(); System.out.println("System.getProperties():=======>"+properties); //獲取運(yùn)行jvm的平臺(tái)相關(guān)環(huán)境變量 Map<String, String> getenv = System.getenv(); System.out.println("System.getenv():----->"+getenv); String myVMarg1 = System.getenv("MyVMarg"); System.out.println("System.getenv(\"MyVMarg\")=======>"+myVMarg1); } }
spring 啟動(dòng)參數(shù)
- 設(shè)置配置文件
-Dspring.profiles.active=dev
- 設(shè)置啟動(dòng)端口
-Dserver.port=8081
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Java獲取啟動(dòng)參數(shù)方式
- idea為java程序添加啟動(dòng)參數(shù)的問(wèn)題解析(program?arguments,vm?arguments,Environment?variable)并在程序中獲取使用
- java?啟動(dòng)參數(shù)?springboot?idea詳解
- java?-jar啟動(dòng)參數(shù)設(shè)置file.encoding編碼,解決中文亂碼的問(wèn)題
- Java啟動(dòng)參數(shù)(-,?-X,?-XX參數(shù))的使用
- java啟動(dòng)jar包設(shè)置啟動(dòng)參數(shù)的實(shí)現(xiàn)
相關(guān)文章
MyBatis開(kāi)啟二級(jí)緩存實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了MyBatis開(kāi)啟二級(jí)緩存實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Java實(shí)現(xiàn)Excel導(dǎo)出并添加水印
這篇文章主要為大家詳細(xì)介紹了Java如何使用poi-ooxml包導(dǎo)出xlsx添加水印,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11關(guān)于Lists.partition集合分組使用以及注意事項(xiàng)
這篇文章主要介紹了關(guān)于Lists.partition集合分組使用以及注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01SpringBoot配置lombok與logback過(guò)程解析
這篇文章主要介紹了SpringBoot配置lombok與logback過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05無(wú)感NullPointerException的值相等判斷方法
當(dāng)我們需要去判斷一個(gè)?入?yún)?查庫(kù)?返回的開(kāi)關(guān)變量(通常是個(gè)Integer類(lèi)型的)時(shí),常常會(huì)寫(xiě)如下的if-else判斷語(yǔ)句。但又會(huì)為在生產(chǎn)環(huán)境看到的「NullPointerException」感到困擾,遇到這個(gè)問(wèn)題如何處理呢,下面小編通過(guò)本文給大家詳細(xì)講解,需要的朋友參考下吧2023-02-02關(guān)于Java Spring三級(jí)緩存和循環(huán)依賴(lài)的深入理解
對(duì)于循環(huán)依賴(lài),我相信讀者無(wú)論只是聽(tīng)過(guò)也好,還是有過(guò)了解也好,至少都有所接觸。但是我發(fā)現(xiàn)目前許多博客對(duì)于循環(huán)依賴(lài)的講解并不清楚,都提到了Spring的循環(huán)依賴(lài)解決方案是三級(jí)緩存,但是三級(jí)緩存每一級(jí)的作用是什么,很多博客都沒(méi)有提到,本篇文章帶你深入了解2021-09-09