当前位置: 首页 > 面试题库 >

我们可以用Java读取OS环境变量吗?

温峻熙
2023-03-14
问题内容

我的操作系统是Windows7。我想在我的Java应用程序中读取环境变量。我已经搜索过google,很多人的答案是使用方法
System.getProperty(String name)System.getenv(String name)。但这似乎不起作用。通过该方法,我可以读取JVM中定义的某些变量的值。

如果我设置一个名为“ Config”的环境变量,其值为“一些配置信息”,那么如何在Java中获取该值?


问题答案:

您应该使用System.getenv(),例如:

import java.util.Map;

public class EnvMap {
    public static void main (String[] args) {
        Map<String, String> env = System.getenv();
        for (String envName : env.keySet()) {
            System.out.format("%s=%s%n",
                              envName,
                              env.get(envName));
        }
    }
}

从IDE运行时,您可以定义其他环境变量,该变量将传递给Java应用程序。例如,在IntelliJ
IDEA中,您可以在运行配置的“环境变量”字段中添加环境变量。

注意(如@vikingsteve的注释中所述),与其他Windows可执行文件一样,JVM对环境变量的系统级更改仅在重新启动时传播到该进程

有关更多信息,请查看Java教程的“
环境变量
”部分。

System.getProperty(String name)用于获取不是环境变量的Java
系统属性。



 类似资料:
  • 问题内容: 这可能是一个非常简单的问题,但是我找不到谷歌的答案,所以我很着急-因此,我希望能使用快速的示例代码。 我想使用Java代码在OS上读取一个环境变量。我已经尝试过了System.getProperty,但这似乎只对-D直接为JVM提供的变量有效。 我的Java代码如何读取OS变量? 问题答案: 尝试System.getenv(字符串名称)

  • 5.3.1 $%envVarName% 当编译时,$%envVarName% 将会被环境变量 envVarName 替换。

  • 问题内容: 我有一个Perl脚本,其中有一个类似的变量。我们可以将$ name的内容设置为可以导入其他文件并在其他文件中使用的环境变量吗? 我尝试过,但是这不起作用。 问题答案: 如果要影响您的进程或子进程的环境,请使用哈希: 如果要影响父进程的环境,则不会。至少没有父进程的合作。标准过程是发出shell脚本并让父进程执行该shell脚本: …并从shell(脚本)中调用该脚本为:

  • 在Jenkins中,我试图设置一个动态环境变量。 我使用Scriptler创建了一个Groovy脚本并将结果写入文件。 然后,我使用EnvInject来读取该文件的内容。 Groovy脚本: 设置: 但是,我想要设置的环境变量仍然无法识别: 知道为什么无法识别环境变量吗?

  • 问题内容: 我在EC2竞价型实例上运行R,并且需要R终止实例并在脚本运行后取消竞价请求。 为此,我在环境变量中设置了“请求ID” ,我的计划是在脚本准备好后将以下代码简单地调用到R中 我遇到的问题是R无法“看到”我从外部R 键入时看到的相同环境变量,因此该命令无法正常工作。 我已经检查了一下,如果我将环境变量设置为R,就可以看到这些变量,但这是另一个问题。由于这些变量是动态的(每次创建竞价型实例时

  • 问题内容: 有没有办法在Node.js代码中读取环境变量? 例如Python的。 问题答案: process.env.ENV_VARIABLE 您要访问的变量的名称在哪里。