起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > 在Java中访问并配置环境变量

在Java中访问并配置环境变量

时间:2022-08-14 14:43:27来源:零基础学Java 作者:Java学习网 已有: 名学员访问该课程

  快捷搜索:java配置环境变量

前言: 如何在 Java 中访问环境变量 最常见的方法之一是使用System.getenv(),它接受一个可选String参数。根据是否String传递了参

如何在 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

文章出自:http://qh.itpxw.cn/peixun/software/2022123660.html

文章标题:在Java中访问并配置环境变量



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容