大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 在Java中訪問并配置環境變量

在Java中訪問并配置環境變量

更新時間:2022-06-24 10:07:43 來源:動力節點 瀏覽1738次

如何在 Java 中訪問環境變量

最常見的方法之一是使用System.getenv(),它接受一個可選String參數。根據是否String傳遞了參數,方法會返回不同的值。具體來說:

如果 aString被傳遞并且它匹配內部環境中的一個鍵Map,那么它的值被返回。如果沒有找到匹配的鍵,null則返回。如果未String傳遞參數,則返回包含所有環境變量及其值的只讀值。Map 的鍵是環境變量名稱,其值是值。java.util.Map

請記住,不同的平臺以不同的方式運行,例如,在 UNIX、Linux 和 macOS 上,環境變量區分大小寫,而在 Microsoft Windows上則不是。

下面,您可以看到如何使用該方法檢索 LinuxSHELL環境變量(包含用戶的 shell)的示例。

package com.settermjd.twilio.envvars;
public class Main {
    public static void main(String[] args) {
        System.out.println(
            String.format("The current shell is: %s.", System.getenv("SHELL"))
        );
    }
}

如果要提供默認值,請System.genenv()按以下方式調用:

System.getenv().getOrDefault("SHELL", "/bin/bash")

如何設置環境變量

UNIX、Linux 和 macOS

在 UNIX、Linux 和 macOS 上,可以通過三種核心方式設置環境變量。

可用于當前會話和所有子進程

您可以使用內置的導出命令初始化環境變量,以便它們可用于當前會話,包括當前會話和在當前會話中啟動的任何進程,以及在當前會話中啟動的任何進程,如示例中所示以下。

export USER_ID=1

以這種方式設置環境變量不是永久性的。如果要永久設置環境變量,則需要在系統范圍的啟動文件/etc/profile或用戶特定的啟動文件之一中設置它,即~/.bash_profile、~/.bash_login , 和~/.profile。

可用于當前會話

您可以初始化一個環境變量,使其可用于當前會話,但不能用于任何子進程,如下例所示,不使用該export命令。

USER_ID=1

可用于特定進程

最后,您可以初始化一個環境變量,使其僅對特定進程可用。當只有該過程需要變量時,這很有幫助。在啟動所需的過程時,您可以按照下面的示例對其進行初始化。

USER_ID=1 retrieveUserDetails

微軟Windows

在 Microsoft Windows 中設置環境變量略有不同。您可以通過控制面板設置它們,也可以在命令提示符或 PowerShell 控制臺中設置它們。下面有后兩者的例子。

# Set USER_ID in the Windows Command Prompt
set USER_ID=1
# Set USER_ID in the Windows PowerShell console
$Env:USER_ID = 1

使用 .env 文件

雖然以這種方式設置環境變量可能非常有效,但它也會很快變得很麻煩。例如,通過在操作系統的 shell 中設置它們,沒有應用程序需要的變量的具體列表,也沒有關于變量的用途或它必須是什么數據類型的信息。

鑒于此,除其他原因外,The 12-Factor App建議將配置與代碼嚴格分離。通過使用.env (dotenv) 文件,這種做法很快在整個開發者社區中流行起來。這些是存儲鍵/值對列表的純文本文件,定義了應用程序工作所需的環境變量,如下例所示。

USER_ID=1
TWILIO_AUTH_TOKEN=1234567890987654321

為了簡化項目的開始,出現了一種更常見的做法,即在項目中包含一個.env.example文件,該文件包含所有鍵,但沒有它們的值。當新開發人員開始開發應用程序時,他們會復制該文件,將其命名為.env并為適用于其本地開發環境的每個鍵設置值。

讀取 .env 文件

假設上面的示例是我們項目的.env文件,我們可以使用諸如dotenv-java之類的包來使變量對我們的應用程序可用。

如果你在 Kotlin 中開發,你可以使用dotenv-kotlin。

您可以在下面的代碼示例中看到使用包的示例。

package com.settermjd.twilio.envvars;
import io.github.cdimascio.dotenv.Dotenv;
import io.github.cdimascio.dotenv.DotenvException;
public class Main {
    public static void main(String[] args) {
        Dotenv dotenv = null;
        dotenv = Dotenv.configure().load();
        System.out.println(String.format(
            "Hello World. Shell is: %s. Name is: %s",
            System.getenv("SHELL"),
            dotenv.get("NAME")
        ));
    }
}

代碼初始化一個新Dotenv對象 dotenv,并調用讀取位于項目根目錄中的.envDotenv.configure().load()中的環境變量。之后,用于檢索傳遞給它的對象的值。如果未找到匹配的鍵,則該方法返回。dotenv.get()Stringnull

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲成人伦理 | 日本综合| 国产99在线观看 | 狠狠骑| 亚洲成人在线播放视频 | se色成人亚洲综合 | 国产精品视频免费一区二区三区 | 久久综合视频网 | 性做久久久久久蜜桃花 | 日韩欧美精品中文字幕 | 色偷偷亚洲 | 国产精品久久久久久久久免费 | 久久99精品久久久久久 | 波多野结衣一区二区三区高清在线 | 99色视频| 欧美性生交xxxxx久久久 | 曰鲁夜鲁鲁狠狠综合 | 精品毛片免费看 | 五月久久婷婷综合片丁香花 | 天天伊人网 | 精品成人在线视频 | 欧美日韩国产高清视频 | 国内精品视频在线 | 欧美一级毛片免费播放aa | 天天做天天爽爽快快 | 久热中文字幕在线精品首页 | 黄页网站 播放器 日本 | 末成年娇小性色xxxxx视频 | 免费亚洲网站 | 牛牛本精品99久久精品 | 真实的国产乱xxxx | 国产伦精品一区二区三区无广告 | 成年网站视频在线观看 | 在线观看中文字幕亚洲 | 天天搞夜夜| 国产精品99久久久久久宅男 | 天天色天天干天天 | 日本视频在线观看不卡高清免费 | 国产精品午夜波多野结衣性色 | 日韩精品在线视频观看 | 欧美19p |