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

 更新时间:2021年06月19日 14:53:00   作者:欢谷悠扬  
这篇文章主要介绍了idea向System.getenv()添加系统环境变量的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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"));

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

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

相关文章

  • idea显示springboot多服务启动界面service操作

    idea显示springboot多服务启动界面service操作

    这篇文章主要介绍了idea显示springboot多服务启动界面service操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 程序员最喜欢的ThreadLocal使用姿势

    程序员最喜欢的ThreadLocal使用姿势

    ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些,下面这篇文章主要给大家介绍了程序员最喜欢的ThreadLocal使用姿势,需要的朋友可以参考下
    2022-02-02
  • MyBatis-Plus 分页查询的实现示例

    MyBatis-Plus 分页查询的实现示例

    本文主要介绍了MyBatis-Plus 分页查询的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Java+Eclipse+Selenium环境搭建的方法步骤

    Java+Eclipse+Selenium环境搭建的方法步骤

    这篇文章主要介绍了Java+Eclipse+Selenium环境搭建的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • 在Map中实现key唯一不重复操作

    在Map中实现key唯一不重复操作

    这篇文章主要介绍了在Map中实现key唯一不重复操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Spring如何消除代码中的if-else/switch-case

    Spring如何消除代码中的if-else/switch-case

    这篇文章主要给大家介绍了关于Spring如何消除代码中if-else/switch-case的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • RocketMQ broker 消息投递流程处理PULL_MESSAGE请求解析

    RocketMQ broker 消息投递流程处理PULL_MESSAGE请求解析

    这篇文章主要为大家介绍了RocketMQ broker 消息投递流程处理PULL_MESSAGE请求源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Java利用Jackson序列化实现数据脱敏

    Java利用Jackson序列化实现数据脱敏

    这篇文章主要介绍了利用Jackson序列化实现数据脱敏,首先在需要进行脱敏的VO字段上面标注相关脱敏注解,具体实例代码文中给大家介绍的非常详细,需要的朋友可以参考下
    2021-10-10
  • Java之Set 交集,差集,并集的用法

    Java之Set 交集,差集,并集的用法

    这篇文章主要介绍了Java之Set 交集,差集,并集的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Mybatis中@Param注解的用法详解

    Mybatis中@Param注解的用法详解

    @Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中,下面这篇文章主要给大家介绍了关于Mybatis中@Param注解用法的相关资料,需要的朋友可以参考下
    2022-07-07

最新评论