当程序中需要使用与操作系统相关的变量(例如:文件分隔符、换行符)时,java提供了system类的静态方法getenv()和getproperty()用于返回系统相关的变量与属性,getenv方法返回的变量大多于系统相关,getproperty方法返回的变量大多与java程序有关。
系统属性和环境变量都是名称与值之间的映射。两种机制都能用来将用户定义的信息传递给 java进程。环境变量产生更多的全局效应,因为它们不仅对java子进程可见,而且对于定义它们的进程的所有子进程都是可见的。在不同的操作系统上,它们的语义有细微的差别,比如,不区分大小写。因此环境变量更可能有意料不到的副作用。程序中尽可能使用系统属性。环境变量应该在需要全局效应的时候使用,或者在外部系统接口要求使用环境变量时使用(比如 path)。
1、环境变量getenv() :用于获取当前系统环境的字符串映射视图;测试代码及运行结果如下:
publicclass test {
publicstaticvoid main(string[] args) {
map<string, string> map = system.getenv();
for(iterator<string> itr = map.keyset().iterator();itr.hasnext();){
string key = itr.next();
system.out.println(key + "=" + map.get(key));
}
}
}
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 :应用程序数据目录
2、系统属性getproperty() :当前的系统属性。测试代码及运行结果如下:
publicclass test {
publicstaticvoid main(string[] args) {
properties props = system.getproperties();
props.list(system.out);
}
}
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 :用户的当前工作目录
更多java获取系统属性及环境变量。