Java获取环境变量(System.getenv)的方法
作者:IT利刃出鞘 发布时间:2021-10-06 03:23:47
简介
说明
本文用示例介绍Java获得环境变量的方法:System.getenv。
System.getenv与System.getProperty的区别
项 | 属性(System.getProperty) | 环境变量(System.getenv) |
运行时是否可修改 | 可以 | 不可以 |
有效范围 | 仅在java平台中有效 | 系统里所有程序都有效 |
创建的时机 | 打包应用时属性必须存在 | 可以在任何时候创建环境变量 |
相关网址
System.getProperty用法:
常用方法
方法 | 作用 |
System.getenv() | 获得所有环境变量 |
System.getenv(String name) | 获得名为name的属性的值。 |
获得自定义的环境变量
现在指定JAVA_HOME环境变量,值为JDK路径,如下图所示:
package com.example.a;
public class Demo {
public static void main(String[] args) {
String javaHome = System.getenv("JAVA_HOME");
System.out.println("javaHome的值:" + javaHome);
}
}
执行结果(直接执行或者打成jar包来执行都可以)
打印所有的环境变量
package com.example.a;
import java.util.Map;
public class Demo {
public static void main(String[] args) {
Map<String, String> envMap = System.getenv();
for (Map.Entry<String, String> entry : envMap.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
执行结果:
USERDOMAIN_ROAMINGPROFILE:DESKTOP-QI6B9ME
NVM_SYMLINK:D:\Program Files\dev\nvm\symlink
PROCESSOR_LEVEL:23
SESSIONNAME:Console
ALLUSERSPROFILE:C:\ProgramData
PROCESSOR_ARCHITECTURE:AMD64
PSModulePath:C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
SystemDrive:C:
MAVEN_HOME:E:\work\maven\apache-maven-3.6.3
MOZ_PLUGIN_PATH:D:\Program Files (x86)\Foxit Software\Foxit Reader\plugins\
USERNAME:knife
ProgramFiles(x86):C:\Program Files (x86)
FPS_BROWSER_USER_PROFILE_STRING:Default
PATHEXT:.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
DriverData:C:\Windows\System32\Drivers\DriverData
ProgramData:C:\ProgramData
ProgramW6432:C:\Program Files
HOMEPATH:\Users\knife
PROCESSOR_IDENTIFIER:AMD64 Family 23 Model 96 Stepping 1, AuthenticAMD
HADOOP_HOME:D:\dev\bigdata\hadoop-3.2.2
M2_HOME:E:\work\maven\apache-maven-3.6.3
ProgramFiles:C:\Program Files
PUBLIC:C:\Users\Public
windir:C:\WINDOWS
=:::::\
LOCALAPPDATA:C:\Users\knife\AppData\Local
USERDOMAIN:DESKTOP-QI6B9ME
FPS_BROWSER_APP_PROFILE_STRING:Internet Explorer
LOGONSERVER:\\DESKTOP-QI6B9ME
JAVA_HOME:D:\dev\Java\jdk1.8.0_201
WebStorm:D:\Program Files\JetBrains\WebStorm 2021.1.3\bin;
OneDrive:C:\Users\knife\OneDrive
APPDATA:C:\Users\knife\AppData\Roaming
CommonProgramFiles:C:\Program Files\Common Files
Path:C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;d:\Program Files\Git\cmd;D:\dev\Java\jdk1.8.0_201\bin;E:\work\maven\apache-maven-3.6.3\bin;D:\Program Files\mysql-8.0.21-winx64\bin;E:\work\npm\node_global;D:\dev\nodejs\;D:\dev\bigdata\hadoop-3.2.2\bin;D:\dev\bigdata\scala-2.12-13\bin;C:\Users\knife\AppData\Local\Microsoft\WindowsApps;D:\Program Files\JetBrains\WebStorm 2021.1.3\bin;;D:\Program Files\dev\nvm\symlink;C:\Users\knife\AppData\Roaming\npm;
OS:Windows_NT
COMPUTERNAME:DESKTOP-QI6B9ME
PROCESSOR_REVISION:6001
CommonProgramW6432:C:\Program Files\Common Files
ComSpec:C:\WINDOWS\system32\cmd.exe
WXDRIVE_START_ARGS:--wxdrive-setting=0 --disable-gpu --disable-software-rasterizer --enable-features=NetworkServiceInProcess
SystemRoot:C:\WINDOWS
TEMP:C:\Users\knife\AppData\Local\Temp
HOMEDRIVE:C:
USERPROFILE:C:\Users\knife
TMP:C:\Users\knife\AppData\Local\Temp
CommonProgramFiles(x86):C:\Program Files (x86)\Common Files
NUMBER_OF_PROCESSORS:12
IDEA_INITIAL_DIRECTORY:C:\Users\knife\Desktop
默认环境变量及其含义
环境变量 | 含义 |
USERPROFILE | 用户目录 |
USERDNSDOMAIN | 用户域 |
PATHEXT | 可执行后缀 |
JAVA_HOME | Java安装目录 |
TEMP | 用户临时文件目录 |
SystemDrive | 系统盘符 |
ProgramFiles | 默认程序目录 |
USERDOMAIN | 帐户的域的名称 |
ALLUSERSPROFILE | 用户公共目录 |
SESSIONNAME | Session名称 |
TMP | 临时目录 |
Path | path环境变量 |
CLASSPATH | classpath环境变量 |
PROCESSOR_ARCHITECTURE | 处理器体系结构 |
OS | 操作系统类型 |
PROCESSOR_LEVEL | 处理级别 |
COMPUTERNAME | 计算机名 |
Windir | 系统安装目录 |
SystemRoot | 系统启动目录 |
USERNAME | 用户名 |
ComSpec | 命令行解释器可执行程序的准确路径 |
APPDATA | 应用程序数据目录 |
来源:https://blog.csdn.net/feiying0canglang/article/details/124937020


猜你喜欢
- 使用场景当我们在应用的Assets目录中需要加入文件时,可以直接将源文件放入,但这样会造成打包后的apk整体过大,此时就需要将放入的文件进行
- 象棋,很多人多接触过,学者写了一个,大神可以指点一下~直接上代码:贴出主要代码,想要Demo的点击下载:中国象棋Demopackage wy
- 本文实例介绍了Android如何画出触摸轨迹的方法,分享给大家供大家参考,具体内容如下效果图:实现代码:package com.androi
- 什么是分布式锁?它能干什么?相信大家对于Java提供的synchronized关键字以及Lock锁都不陌生,在实际的项目中大家都使用过。如下
- 一直想练习下java多线程抓取数据。有天被我发现,铃声多多的官网(http://www.shoujiduoduo.com/main/)有大量
- java Iterator接口和LIstIterator接口分析目录1.Iterator接口2.ListIterator3.It
- jar文件包括java普通类、资源文件和普通文件,在maven中即是打包src/main/java和src/main/resources资源
- 题主要区分清楚内码(internal encoding)和外码(external encoding)就好了。内码是程序内部使用的字符编码,特
- 本文实例讲述了Android编程自定义菜单实现方法。分享给大家供大家参考,具体如下:在android开发的过程中系统自带的菜单往往满足不了开
- 1:先检查 字段有没有加上注解 @TableField(fill = FieldFill.INSERT_UPDATE)@TableField
- 本文实例总结了C#常见应用函数。分享给大家供大家参考,具体如下:1、页面写CS代码(代码内嵌)<%@ Import Namespace
- 前言项目中时不时遇到查字典表等数据,只需要返回数据,不需要写其他业务,每个字典表可能都需要写一个接口给前端调用,比较麻烦,所以采用下面这种方
- Step1: 安装JDK并配置环境变量;Step2: 安装Gradle进入点击打开链接官网首页点击install gra
- 双色球选号规则红球是1~33选6个,蓝球1~16选1个。它有17721088种排列组合,这个代码实现了如何将一组双色球号码 转换成第n个排列
- 1.引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务
- 本文实例讲述了C#自定义针对URL地址的处理类。分享给大家供大家参考。具体分析如下:这个C#类是专门针对URL网址处理的类,可以对URL地址
- 一、什么是HTTP协议HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应
- 同一个service调用service本身如果同一个service调用service本身的方法,出现了事务不能控制。解决方案1.在sprin
- 最近做的项目有一个要求,就是在WebView中显示的html,需要在点击其中的图片时进行放大,并进行缩放和滑动 浏览,我第一想到的是这是和j
- 现象说明maven的java项目,测试用例和main所在的源码文件均符合缺省写法和格式,但是在使用mvn clean sonar:sonar