idea向System.getenv()添加系统环境变量的操作
程序员文章站
2022-03-10 20:49:20
idea如何设置系统环境变量背景最近在接入阿里云的短信服务,在使用阿里云短信服务的sdk过程中想看看sdk中httputil 中public static string debughttpreques...
idea如何设置系统环境变量
背景
最近在接入阿里云的短信服务,在使用阿里云短信服务的sdk过程中想看看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是在静态代码块中通过读取系统环境变量判断的
static { boolean flag = "sdk".equalsignorecase(system.getenv("debug")); ishttpdebug = flag; ishttpcontentdebug = flag; }
所以来想办法如何设置这个debug参数
读取系统环境变量
for (string s : system.getenv().keyset()) { system.out.println(s+":"+system.getenv(s)); }
设置系统环境变量
至此,通过idea设置程序运行系统环境变量就完成了。可以通过system.getenv()来查看设置的系统环境变量。
mac上ide中无法获取环境变量的问题
工作环境:mac
ide:eclipse or intellij idea
工作中需要用环境变量来设置参数,然后在程序启动时发现之前在.bash_profile中配置的环境变量都读不到,命令行echo一下是生效的。
后来定位到原因是idea启动没有获取到环境变量。。我之前的启动方式是直接双击图标。
之后关闭ide,通过bash命令 open /applications/xxx.app启动ide。
system.out.println(system.getenv("local_proxy"));
获取到了之前配置的环境变量,问题解决。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
下一篇: 上古时代的十大女神排名