【问题标题】:How to set environment variables for Java如何为 Java 设置环境变量
【发布时间】:2018-09-25 23:14:48
【问题描述】:

我在.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 运行的。

【问题讨论】:

  • 你是如何运行java应用程序的?
  • 附带说明,您在 .bash_profile 中设置了 PATH(并将其设置为文字字符串,因为您在 GOOGLE 之前错过了 $),但随后您重新尝试在您的echo 命令和您的应用程序中读取GOOGLE_APPLICATION_CREDENTIALS。但是,如果 echo 命令正在运行,我希望您的应用代码也能正常运行,前提是它在同一环境中运行。
  • @Azquelt 我正在使用 Eclipse 运行 Java 应用程序。我使用 Leo R. 的答案中提供的方法打印出所有环境变量。但在那里看不到 GOOGLE_APPLICATION_CREDENTIALS,但是当我在终端中回显 $GOOGLE_APPLICATION_CREDENTIALS 时,结果出来了。
  • 这是重要的信息,从 eclipse 运行会产生很大的不同,请参阅下面的答案。
  • 能否请您使用 cli 运行您的 java 应用程序? java -cp <CLASS_APTH> YOUR_MAIN_CLASS.

标签: java eclipse environment-variables


【解决方案1】:

我怀疑您在 .bash_profile 中设置的环境变量没有被拾取。

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

转到Run -> Run Configurations...,在Java Applications 下为您的应用找到或创建运行配置,转到Environment 选项卡并在其中添加所需的环境变量。

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

【讨论】:

【解决方案2】:

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

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");

【讨论】:

  • 嗨,我已经打印了所有变量,但 GOOGLE_APPLICATION_CREDENTIALS 不在列表中。那么,我应该在哪里设置这个变量,以便 java 可以读取它?
【解决方案3】:

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

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

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

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

【讨论】:

  • 您好,有程序参数和虚拟机参数,应该如何设置?你能提供一个样品吗?谢谢!
  • @final static 请参考stackoverflow.com/questions/35629641/…这个链接!!希望这会有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-03
  • 1970-01-01
  • 1970-01-01
  • 2020-02-14
  • 2011-02-13
  • 2011-12-30
相关资源
最近更新 更多