欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

idea向System.getenv()添加系统环境变量的操作

程序员文章站 2022-06-23 13:32:35
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()添加系统环境变量的操作

idea向System.getenv()添加系统环境变量的操作

至此,通过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"));

获取到了之前配置的环境变量,问题解决。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。