码迷,mamicode.com
首页 > 编程语言 > 详细

为什么Java使用System.getenv()获取刚刚设置的环境变量时为空

时间:2017-09-29 16:42:53      阅读:456      评论:0      收藏:0      [点我收藏+]

标签:question   exist   解决   when   get   stack   配置   项目   ubuntu   

场景:

在Ubuntu下已经启动了Eclipse,然后通过终端设置了环境变量(export $ENV=123),然后通过System.getenv()获取时显示为空。

解释:

环境变量仅在进程树下方,并且只有在进程启动时。Eclipse是您的Shell的子进程 - 因此,当您启动Eclipse时,它继承了您的Shell上定义的所有环境变量。

您可能在启动Eclipse之后在Shell上定义了环境变量,因此,Eclipse及其创建的Java子进程不了解您的新环境变量。

由于这个行为,实际上这里的解决方案是退出Eclipse并从Shell重新启动它,而环境变量之前定义。另一个选择是转到项目的运行配置并在其中定义环境变量。

 

参考:

https://stackoverflow.com/questions/29782467/system-getenv-returns-null-when-the-environment-variable-exists

为什么Java使用System.getenv()获取刚刚设置的环境变量时为空

标签:question   exist   解决   when   get   stack   配置   项目   ubuntu   

原文地址:http://www.cnblogs.com/EasonJim/p/7610949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!