如何在 Java 中获取环境变量

2024 年 9 月 10 日 | 阅读 3 分钟

计算机的每种编程语言都有变量和常量,它们分配特定的内存地址来存储程序可以利用的数据。变量的值可以改变,而常量的值则不能。称为环境变量的键/值组合是其值在程序外部设置,但程序始终可以访问其引用的组合。

值和键都是字符串。操作系统和命令行解释器在设置和使用环境变量方面总是存在不同的约定。系统上运行的每个应用程序都可以全局持续访问它们。

用例

据我们所知,每次程序更新时,都必须重新启动或运行服务器,这在生产环境中可能会产生意想不到的后果。因此,引入环境变量的主要目的是反复限制这种执行和部署。

示例

解释

在这种情况下,Path 是一个在程序外部设置但可被所有基于 Windows 的程序访问的环境变量。

Java 提供了 2 种在 Java 程序中获取环境变量的方法。

  1. getenv()
  2. getProperty()

System.getenv()

当特定的键名作为参数传入时,System.getenv() 方法将检索该键的值,而不是仅仅检索所有环境变量。java.lang。System.getenv() 始终返回所有可访问环境变量的字符串映射。

语法

Name 是用于定义在此实例中需要其值的键的参数。

返回值

如果提供的参数未链接到任何键,它将返回 null。否则,它将返回键的值。如果未传递参数,将返回所有可访问的键/值对。

实施

文件名: SystemGetEnv.java

输出

System.getenv(PATH1) = null
System.getenv(TEMP1) = null
USERDOMAIN_ROAMINGPROFILE=DESKTOP-2CFH9HQ
LOCALAPPDATA=C:\Users\Nikhil\AppData\Local
PROCESSOR_LEVEL=6
USERDOMAIN=DESKTOP-2CFH9HQ
FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer
LOGONSERVER=\\DESKTOP-2CFH9HQ
PROMPT=$P$G
SESSIONNAME=Console
ALLUSERSPROFILE=C:\ProgramData
=K:=K:\
PROCESSOR_ARCHITECTURE=AMD64
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
SystemDrive=C:
=ExitCode=00000000
OneDrive=C:\Users\Nikhil\OneDrive
APPDATA=C:\Users\Nikhil\AppData\Roaming
USERNAME=Nikhil
ProgramFiles(x86)=C:\Program Files (x86)
CommonProgramFiles=C:\Program Files\Common Files
Path=C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Java\jdk-12.0.2\bin;C:\Program Files\Java\jdk-12.0.2\bin\google.jar
FPS_BROWSER_USER_PROFILE_STRING=Default
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
OS=Windows_NT
COMPUTERNAME=DESKTOP-2CFH9HQ
PROCESSOR_REVISION=8e09
CommonProgramW6432=C:\Program Files\Common Files
ComSpec=C:\Windows\system32\cmd.exe
ProgramData=C:\ProgramData
ProgramW6432=C:\Program Files
HOMEPATH=\Users\Nikhil
SystemRoot=C:\Windows
TEMP=C:\Users\Nikhil\AppData\Local\Temp
HOMEDRIVE=C:
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 9, GenuineIntel
USERPROFILE=C:\Users\Nikhil
TMP=C:\Users\Nikhil\AppData\Local\Temp
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
ProgramFiles=C:\Program Files
PUBLIC=C:\Users\Public
NUMBER_OF_PROCESSORS=4
windir=C:\Windows
=::=::\

注意:根据您的操作系统,您可能会收到不同的结果。

System.getProperty()

Java.lang 是另一个选项。在 Java 中,使用 System.getProperty() 来获取作为参数给定的键的值。借助此方法,您可以获取有关本地系统和配置以及系统属性的信息。如果环境变量在 Java 中作为系统属性可用,最好使用 System.getProperty() 以平台无关的方式检索其值。与环境变量不同,环境变量不能在运行时更改,而属性可以。

语法

Name 是用于定义在此上下文中需要其值的键的参数。

返回值

它将返回键的值或 null。

实施

文件名: SystemGetProperty.java

输出

user.name : Nikhil
home : null
os.name : Windows 10