zoukankan      html  css  js  c++  java
  • Java读取自定义环境变量的方法System.getProperty和System.getenv

    引自:https://blog.csdn.net/zhen8023wan/article/details/38460389

    问题的由来,想在测试机环境下搞测试,然后不想修改搞到线上环境的时候,自动把本地测试的代码去掉,第一反应的是使用ip判断,但是某些时候也许没有request参数,那么我们变通一下,只需要在测试环境上搞一个自定义的环境变量,然后用来作为判断条件即可。
    假设设置了环境变量MYNAME, 值为”this is my name”, 运行如下代码:

    System.out.println("using getenv: "+ System.getenv("MYNAME"));
    System.out.println("using getProperty: "+ System.getProperty("MYNAME"));

    结果分别为:
    using getenv: this is my name
    using getProperty: null

    另试了如下代码:

    java.util.Properties p = System.getProperties();
    java.util.Enumeration keys = p.keys();
    while( keys.hasMoreElements() )
    {
         System.out.println( keys.nextElement());
     }

    结果根本没有MYNAME 这个变量!
    那么怎么解决呢,需要明白这一点 System.getProperty(“MYNAME”) 只有当你运行 java -DMYNAME=JACK MyClass,这样好办了,我们只需修改服务容器比如resin的启动脚本 加上一个 -D自定义参数 即可。

  • 相关阅读:
    对SpringIOC、AOP的理解
    Java后台与VUE跨域交接
    贼简单的Shiro框架之粗粒度控制菜单栏
    Json
    Spring MVC小DEMO
    面试问题
    多线程理解
    了解java语言
    单点登录如何设计
    进程的创建和调度分析
  • 原文地址:https://www.cnblogs.com/linwenbin/p/12590992.html
Copyright © 2011-2022 走看看