Java System.getenv(“TEST”u HOME)返回null
我正在ubuntu 14.0.4机器上工作 我使用导出了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启动的程序
.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)是否需要为此重新启动计算机?这将有助于避免重新启动计算机。