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ì)話框

找到你需要的添加啟動(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類以前使用 set JAVA_HOME=D:\jdk1.8.0_05 這種方式進(jìn)行臨時(shí)修改,這種方式只在當(dāng)前cmd窗口有效,點(diǎn)擊看詳情 [設(shè)置臨時(shí)的java環(huán)境變量][java])。
java提供了System類的靜態(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)名稱、區(qū)域、用戶名等,此屬性一般由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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
CAT分布式實(shí)時(shí)監(jiān)控系統(tǒng)使用詳解
這篇文章主要為大家介紹了CAT分布式實(shí)時(shí)監(jiān)控系統(tǒng)介紹詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Java中的自動(dòng)裝箱與自動(dòng)拆箱的實(shí)現(xiàn)
自動(dòng)裝箱和自動(dòng)拆箱使得我們?cè)谑褂没緮?shù)據(jù)類型時(shí)更加方便,同時(shí)也提高了代碼的可讀性和健壯性,本文將詳細(xì)介紹Java中的自動(dòng)裝箱和自動(dòng)拆箱機(jī)制,感興趣的可以了解一下2023-08-08
Java 并發(fā)編程學(xué)習(xí)筆記之Synchronized簡(jiǎn)介
雖然多線程編程極大地提高了效率,但是也會(huì)帶來(lái)一定的隱患。比如說(shuō)兩個(gè)線程同時(shí)往一個(gè)數(shù)據(jù)庫(kù)表中插入不重復(fù)的數(shù)據(jù),就可能會(huì)導(dǎo)致數(shù)據(jù)庫(kù)中插入了相同的數(shù)據(jù)。今天我們就來(lái)一起討論下線程安全問(wèn)題,以及Java中提供了什么機(jī)制來(lái)解決線程安全問(wèn)題。2016-05-05
SpringBoot優(yōu)雅地實(shí)現(xiàn)全局異常處理的方法詳解
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何優(yōu)雅地實(shí)現(xiàn)全局異常處理,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-08-08
Java ThreadLocal 線程本地存儲(chǔ)工具思路詳解
文章詳細(xì)介紹了Java的ThreadLocal類,包括其核心作用、定位、特性、工作原理、用法、內(nèi)存泄漏風(fēng)險(xiǎn)、父子線程共享問(wèn)題、線程安全邊界以及與synchronized和并發(fā)容器的區(qū)別,感興趣的朋友跟隨小編一起看看吧2025-12-12
SpringBoot使用Druid數(shù)據(jù)源的配置方法
這篇文章主要介紹了SpringBoot使用Druid數(shù)據(jù)源的配置方法,文中代碼實(shí)例相結(jié)合的形式給大家介紹的非常詳細(xì),需要的朋友參考下吧2018-04-04
使用maven整合Spring+SpringMVC+Mybatis框架詳細(xì)步驟(圖文)
這篇文章主要介紹了使用maven整合Spring+SpringMVC+Mybatis框架詳細(xì)步驟(圖文),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
java圖論普利姆及克魯斯卡算法解決最小生成樹(shù)問(wèn)題詳解
這篇文章主要為大家介紹了java圖論普利姆算法及克魯斯卡算法解決最小生成樹(shù)問(wèn)題的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11

