Java读取自定义环境变量的方法System.getProperty和System.getenv

Posted lwb444

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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自定义参数 即可。

以上是关于Java读取自定义环境变量的方法System.getProperty和System.getenv的主要内容,如果未能解决你的问题,请参考以下文章

java运行环境变量及自定义变量

vue 全局环境变量配置和自定义全局变量

java中读取properties文件

环境变量说明

40-Jenkins-环境变量的使用

java项目中设置 System.getProperty(“XXX”)自定义变量