我已在.bash_profile
export GOOGLE_APPLICATION_CREDENTIALS=/Users/jun/Downloads
export PATH=$PATH:GOOGLE_APPLICATION_CREDENTIALS
并且更改确实生效
但是,当我尝试使用以下方法访问环境变量时
System.out.println(System.getenv("GOOGLE_APPLICATION_CREDENTIALS"));
结果为 NULL
为什么?
注意:应用程序是使用Eclipse运行的。
答案 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");