idea向System.getenv()添加系統(tǒng)環(huán)境變量的操作
idea如何設(shè)置系統(tǒng)環(huán)境變量
背景
最近在接入阿里云的短信服務(wù),在使用阿里云短信服務(wù)的SDK過(guò)程中想看看SDK中HttpUtil 中
public static String debugHttpRequest(HttpRequest request) { if (isHttpDebug) { StringBuilder debugString = new StringBuilder(); String sysUrl = request.getSysUrl(); URL url = null; try { url = new URL(sysUrl); debugString.append("> " + request.getSysMethod() + " " + url.getProtocol().toUpperCase() + "/1.1\n> "); debugString.append("Host : " + url.getHost() + "\n> "); } catch (MalformedURLException e) { debugString.append("> " + request.getSysMethod() + " " + sysUrl + "\n> "); debugString.append("Host : " + sysUrl + "\n> "); } Map<String, String> requestHeaders = request.getSysHeaders(); for (Entry<String, String> entry : requestHeaders.entrySet()) { debugString.append(entry.getKey() + " : " + entry.getValue() + "\n> "); } debugString.append("Request URL : " + sysUrl + "\n> "); if (isHttpContentDebug) { try { debugString.append("\n" + request.getHttpContentString()); } catch (ClientException e) { debugString.append("\n" + "Can not parse response due to unsupported encoding : " + request .getSysEncoding()); } } log.info("\n" + debugString); return debugString.toString(); } else { return null; } }
上述方法的debug信息,但是由于isHttpDebug是在靜態(tài)代碼塊中通過(guò)讀取系統(tǒng)環(huán)境變量判斷的
static { Boolean flag = "sdk".equalsIgnoreCase(System.getenv("DEBUG")); isHttpDebug = flag; isHttpContentDebug = flag; }
所以來(lái)想辦法如何設(shè)置這個(gè)DEBUG參數(shù)
讀取系統(tǒng)環(huán)境變量
for (String s : System.getenv().keySet()) { System.out.println(s+":"+System.getenv(s)); }
設(shè)置系統(tǒng)環(huán)境變量
至此,通過(guò)idea設(shè)置程序運(yùn)行系統(tǒng)環(huán)境變量就完成了??梢酝ㄟ^(guò)System.getenv()來(lái)查看設(shè)置的系統(tǒng)環(huán)境變量。
mac上ide中無(wú)法獲取環(huán)境變量的問(wèn)題
工作環(huán)境:mac
IDE:eclipse or IntelliJ IDEA
工作中需要用環(huán)境變量來(lái)設(shè)置參數(shù),然后在程序啟動(dòng)時(shí)發(fā)現(xiàn)之前在.bash_profile中配置的環(huán)境變量都讀不到,命令行echo一下是生效的。
后來(lái)定位到原因是idea啟動(dòng)沒(méi)有獲取到環(huán)境變量。。我之前的啟動(dòng)方式是直接雙擊圖標(biāo)。
之后關(guān)閉ide,通過(guò)bash命令 open /Applications/xxx.app啟動(dòng)ide。
System.out.println(System.getenv("LOCAL_PROXY"));
獲取到了之前配置的環(huán)境變量,問(wèn)題解決。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
idea顯示springboot多服務(wù)啟動(dòng)界面service操作
這篇文章主要介紹了idea顯示springboot多服務(wù)啟動(dòng)界面service操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09MyBatis-Plus?分頁(yè)查詢的實(shí)現(xiàn)示例
本文主要介紹了MyBatis-Plus?分頁(yè)查詢的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Java+Eclipse+Selenium環(huán)境搭建的方法步驟
這篇文章主要介紹了Java+Eclipse+Selenium環(huán)境搭建的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06在Map中實(shí)現(xiàn)key唯一不重復(fù)操作
這篇文章主要介紹了在Map中實(shí)現(xiàn)key唯一不重復(fù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Spring如何消除代碼中的if-else/switch-case
這篇文章主要給大家介紹了關(guān)于Spring如何消除代碼中if-else/switch-case的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04RocketMQ?broker?消息投遞流程處理PULL_MESSAGE請(qǐng)求解析
這篇文章主要為大家介紹了RocketMQ?broker?消息投遞流程處理PULL_MESSAGE請(qǐng)求源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Java利用Jackson序列化實(shí)現(xiàn)數(shù)據(jù)脫敏
這篇文章主要介紹了利用Jackson序列化實(shí)現(xiàn)數(shù)據(jù)脫敏,首先在需要進(jìn)行脫敏的VO字段上面標(biāo)注相關(guān)脫敏注解,具體實(shí)例代碼文中給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-10-10