Java System.getenv(“TEST”u HOME)返回null

Java System.getenv(“TEST”u HOME)返回null,java,environment-variables,system-variable,Java,Environment Variables,System Variable,我正在ubuntu 14.0.4机器上工作 我使用导出了.bashrc文件中的变量TEST\u HOME export TEST_HOME=/home/dev/code/test 当我尝试从终端返回echo$TEST\u HOME时,它返回/HOME/dev/code/TEST 到目前为止,一切顺利 当我尝试使用Java代码时: String value=System.getenv(“TEST_HOME”) 值为空 我在这里遗漏了什么吗?在中提到变量。bashrc仅适用于从shell启动的程序

我正在ubuntu 14.0.4机器上工作

我使用导出了
.bashrc
文件中的变量TEST\u HOME

export TEST_HOME=/home/dev/code/test
当我尝试从终端返回
echo$TEST\u HOME
时,它返回
/HOME/dev/code/TEST

到目前为止,一切顺利

当我尝试使用Java代码时:

String value=System.getenv(“TEST_HOME”)

为空


我在这里遗漏了什么吗?

中提到变量。bashrc
仅适用于从shell启动的程序。对于系统范围的环境变量,请在
/etc/environment
中提及它


请参阅。bashrc
将仅为bash shell设置环境变量。要在系统范围内设置它,请在
/etc/environment
文件中进行设置

由于您使用的是eclipse,并且它不在bash shell中运行,因此它不会获取您正在设置的变量。如果您在终端中使用java命令行运行您的程序,那么它应该会得到它


/etc/environment
中设置变量将使eclipse可以使用它。更新
/etc/environment

后,需要重新启动计算机。要使该变量位于Java环境中,必须从设置该变量的shell启动Java进程。是吗?@folkol我没有在特定的shell/终端中导出此变量。我在
.bashrc
中添加了它的条目。请关闭并重新打开终端以刷新。bashrc定义的更改这可能会对您有所帮助。@vikingsteve我无法从Java代码中获取此值。我可以从终端获取它的值。当前,在我的
/etc/environment
中只有path变量。我需要在
/etc/environment
中导出TEST\u HOME=/HOME/dev/code/TEST吗?我在
/etc/environment
中添加了
导出TEST\u HOME=/HOME/dev/code/TEST
。现在
echo$TEST\u HOME
没有返回任何内容(我重新启动了终端),Java代码中的空值(我重新启动了eclipse)是否需要为此重新启动计算机?这将有助于避免重新启动计算机。