2016-12-29 65 views
1

添加的环境变量,我用Java编写的应用程序,我需要在AWS EC2机使用环境变量(Linux)的。我在应用程序中使用System.getenv("myvariable")来获取特定的环境变量。我需要设置永久环境变量,目前我已经在~/.bashrc~/.profile~/.bash_profile设置变量。 我的人给export myvariable=xyz 3个文件,然后我跑source ~/.bashrcsource ~/.profilesource ~/.bash_profile。但是,我在应用程序中得到空值。如何在AWS EC2的Linux

我还是不明白,为什么我不能够得到即使我在出口。我~/.bash_profile变量任何环境变量,甚至通过运行echo $myvariable检查,我可以看到XYZ

如果我设置在我的本地MAC机同样的环境变量在我上面的设置,并使用相同的shell来运行相同的Java代码以同样的方式,我可以看到该值的变量。

所以基本上我在我的AWS EC2的Linux机器每次都让空。

是否有任何其他地方我需要设置变量?我甚至重新启动了机器,但没有帮助。

+2

这听起来像你的Java应用程序不一样的用户,因此没有得到同样的环境变量运行。你如何运行Java应用程序? –

+0

我正在使用spring-boot来运行我的maven应用程序。所以我发出这个命令sudo ./mvnw spring-boot:运行我的应用程序。 –

+2

默认情况下,'sudo'不保留环境变量,所以当你通过'sudo'运行你的应用程序时,你所需要的所有环境变量都不会被应用程序使用。为什么你的服务需要以'sudo'运行?端口特权? – birryree

回答