如何为Java设置环境变量

时间:2018-04-16 09:07:53

标签: java eclipse environment-variables

我已在.bash_profile

中插入以下行
export GOOGLE_APPLICATION_CREDENTIALS=/Users/jun/Downloads
export PATH=$PATH:GOOGLE_APPLICATION_CREDENTIALS

并且更改确实生效

enter image description here

但是,当我尝试使用以下方法访问环境变量时

System.out.println(System.getenv("GOOGLE_APPLICATION_CREDENTIALS"));

结果为 NULL

为什么?

注意:应用程序是使用Eclipse运行的。

3 个答案:

答案 0 :(得分:2)

我怀疑您.bash_profile中设置的环境变量未被提取。

如果您从 Eclipse 运行,则需要在“运行配置”的“环境”选项卡上手动设置环境变量。

转到Run - > Run Configurations...,在Java Applications下找到或创建应用的运行配置,转到Environment标签,然后在那里添加所需的环境变量。

单击Run按钮,程序应按预期打印环境变量。

答案 1 :(得分:0)

要设置环境变量,请使用命令“export varname = value”,该命令设置变量并将其导出到全局环境(可供其他进程使用)。如果值包含空格,则用双引号括起来。

您可以通过在主目录的Bash shell启动脚本“〜/ .bashrc”(或“〜/ .bash_profile”或“〜/ .profile”)中放置导出命令来永久设置环境变量;或“/ etc / profile”用于系统范围的操作。

如果你使用eclipse,那么你可以设置jvm在运行java程序时使用的参数

单击右键单击项目名称 点击运行为---->运行配置 - >单击左上角的参数选项卡。

答案 2 :(得分:-1)

打印环境变量返回一张地图,所以试试这个打印所有的env变量:

Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
    System.out.format("%s=%s%n", envName, env.get(envName));
}

或者只有一个:

Map<String, String> env = System.getenv();
String value = env.get("GOOGLE_APPLICATION_CREDENTIALS");