转自:系统变量之System.getenv和System.getProperty()
Java提供了System类的静态方法getenv()和getProperty()用于返回系统相关的变量与属性,getenv方法返回的变量大多与系统相关,getProperty方法返回的变量大多与java程序相关。
System.getenv():方法是获取指定的环境变量的值。
System.getenv(String str):接收参数为任意字符串,当存在指定环境变量时即返回环境变量的值,否则返回null。
System.getProperty():是获取系统的相关属性,包括文件编码、操作系统名称、区域、用户名等,此属性一般由JVM自动获取,不能设置。
System.getProperty(String str):接收参数为任意字符串,当存在指定属性时,返回属性值,否则返回null。
System.setProperty (String prop, String value):设置指定键对值的系统属性
package com.wu;
import java.util.Iterator;
import java.util.Map;
/**
* Iterator主要有三个方法:hasNext(),next(),remove()
*/
public class SayHello {
public static void main(String[] args) {
/**
* 获取所有的系统环境变量
*/
Map<String, String> map = System.getenv();
/**当创建完成指向某个集合或者容器的Iterator对象时,这时的指针实际上指向的是第一个元素的上方,即指向一个空
* 当调用hasNext方法的时候,只是判断下一个元素的有无,并不移动指针
* 当调用next方法的时候,向下移动指针,并且返回指针指向的元素,如果指针指向的内存中没有元素,就会报异常
*/
for (Iterator<String> it = map.keySet().iterator(); it.hasNext();) {
String key = it.next();
System.out.println(key + "=" + map.get(key));
}
}
}
总结:它们返回的都是map类型的键值对。
在测试项目中经常用在初始化测试环境。
System.getenv()
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 :应用程序数据目录
System.getProperty()
java.version Java :运行时环境版本
java.vendor Java :运行时环境供应商
java.vendor.url :Java供应商的 URL
java.home :Java安装目录
java.vm.specification.version: Java虚拟机规范版本
java.vm.specification.vendor :Java虚拟机规范供应商
java.vm.specification.name :Java虚拟机规范名称
java.vm.version :Java虚拟机实现版本
java.vm.vendor :Java虚拟机实现供应商
java.vm.name :Java虚拟机实现名称
java.specification.version:Java运行时环境规范版本
java.specification.vendor:Java运行时环境规范供应商
java.specification.name :Java运行时环境规范名称
java.class.version :Java类格式版本号
java.class.path :Java类路径
java.library.path :加载库时搜索的路径列表
java.io.tmpdir :默认的临时文件路径
java.compiler :要使用的 JIT编译器的名称
java.ext.dirs :一个或多个扩展目录的路径
os.name :操作系统的名称
os.arch :操作系统的架构
os.version :操作系统的版本
file.separator :文件分隔符
path.separator :路径分隔符
line.separator :行分隔符
user.name :用户的账户名称
user.home :用户的主目录
user.dir:用户的当前工作目录