我正在用Java编写应用程序,我需要在AWS EC2机器(Linux)中使用环境变量。我在应用程序中使用System.getenv("myvariable")
来获取特定的环境变量。我需要设置永久环境变量,目前我已将变量设置为~/.bashrc
,~/.profile
和~/.bash_profile
。
我在3个文件中提供了 export myvariable=xyz
,然后我运行了 source ~/.bashrc
, source ~/.profile
,的 source ~/.bash_profile
即可。但是我在应用程序中变为null。
即使我在~/.bash_profile
导出变量,我仍然无法理解为什么我无法获取任何环境变量。我甚至通过运行 echo $myvariable
<进行了检查/ strong>我可以看到 xyz 。
如果我在本地MAC机器中设置相同的环境变量,就像我在上面设置的那样,使用相同的shell运行相同的java代码,我可以看到带有值的变量。
所以基本上我每次都在我的AWS EC2 linux机器上得到null。
我需要设置变量吗?我甚至重新启动了机器,但它没有帮助。
答案 0 :(得分:3)
听起来问题是你如何设置env变量。默认情况下,Sudo不会保留它们,因此您需要使用sudo -E
选项。