簡體   English   中英

我們可以在Java中讀取OS環境變量嗎?

[英]Can we read the OS environment variables in Java?

我的操作系統是windows7。 我想在我的Java應用程序中讀取環境變量。 我搜索過谷歌,很多人的回答是使用方法System.getProperty(String name)System.getenv(String name) 但它似乎沒有用。 通過該方法,我可以讀取JVM中定義的一些變量值。

如果我設置一個名為“Config”的環境變量,其值為“some config information”,如何在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的評論中所述),JVM與任何其他Windows可執行文件一樣,對環境變量的系統級更改僅在重新啟動時傳播到進程。

有關更多信息,請查看Java教程的“ 環境變量 ”部分。

System.getProperty(String name)用於獲取非環境變量的Java 系統屬性

如果有人來到這里並想知道如何在不循環遍歷所有系統變量的情況下獲取特定環境變量,則可以使用getenv(String name) 它返回“變量的字符串值,如果未在系統環境中定義變量,則返回null”。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM