System.getenv 没有找到环境变量

System.getenv not finding envrionment variables

我在 EC2 上的 Ubuntu 实例中获取环境变量时遇到问题。

这是我的 /etc/environment 文件中的内容:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
DATABASE_URL="postgres://postgres:postgres@localhost:5432/suredbitsweb"

现在,当我加载 Scala 解释器时,我会尝试执行以下操作:

^Cubuntu@ip-172-31-35-31:~/suredbits-web$ sudo sbt console
[info] Loading project definition from /home/ubuntu/suredbits-web/project
[info] Set current project to suredbits-web (in build file:/home/ubuntu/suredbits-web/)
[info] Downloading Bower dependencies for suredbits-web
[info] https://github.com/MrRio/jsPDF.git#1.0.272
[info] 1.0.272 against https://github.com/MrRio/jsPDF.git#~1.0.272
[info] git://github.com/bitpay/bitcore-ecies.git#0.10.2
[info] 0.10.2 against git://github.com/bitpay/bitcore-ecies.git#^0.10.0
[info] git://github.com/bitpay/bitcore.git#0.10.4
[info] 0.10.4 against git://github.com/bitpay/bitcore.git#^0.10.4
[info] git://github.com/bitpay/bitcore-explorers.git#0.10.4
[info] 0.10.4 against git://github.com/bitpay/bitcore-explorers.git#~0.10.4
[info] git://github.com/bitpay/bitcore-message.git#0.10.1
[info] 0.10.1 against git://github.com/bitpay/bitcore-message.git#~0.10.1
[info] Starting scala interpreter...
[info] 
Welcome to Scala version 2.11.4 (OpenJDK 64-Bit Server VM, Java 1.7.0_79).
Type in expressions to have them evaluated.
Type :help for more information.

scala> System.getenv("PATH");
res0: String = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

scala> System.getenv("DATABASE_URL");
res1: String = null

scala> 

我有 'rebooted' 我的 EC2 实例,希望它能帮助获取新的环境变量。我也尝试过将环境变量添加到我的 ~/.bashrc 中,但没有用。

首先,检查 echo $PATHecho $DATABASE_URL 的输出。

其次,检查您是否从正确的用户启动 scala 解释器。

仅供参考:分号在 Scala 中不是必需的。

我发现问题是 运行使用 sudo 命令解决了这个问题。它会导致覆盖您的环境变量。要保存您的环境变量,运行 它带有 -E 标志,即

sudo -E sbt console