我们可以在Java中读取操作系统环境变量吗?

2022-08-31 20:01:40

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

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


答案 1

你应该使用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注释中所述),JVM 与任何其他 Windows 可执行文件一样,对环境变量的系统级更改仅在重新启动进程时传播到进程。

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

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


答案 2

如果有人来到这里并想知道如何在不循环遍历所有系统变量的情况下获取特定的环境变量,您可以使用getenv(字符串名称)。它返回“变量的字符串值,如果未在系统环境中定义变量,则返回 null”。

String myEnv = System.getenv("env_name");

推荐