本文主要介绍System.getenv()和System.getProperty()的区别,有很好的参考价值。希望对大家有帮助。如有错误或不足之处,请不吝赐教。
最近,遇到了一个需求,服务器实例需要获得当前的环境变量。查了一下数据,发现环境变量可以设置在两个地方。
一、在系统层面设置环境变量
在系统级设置环境变量,我们应该都做过,以windows系统为例。
这里设置的变量可以通过System.getenv()获得。
二、在java虚拟机层面设置环境变量
我个人理解System.getProperty()可以获取JVM级别的变量,有些变量是在JVM启动后内置的,比如:
参数值
参数含义
java.version
Java运行时环境版本
java .供应商
Java运行时环境供应商
java .供应商. url
Java供应商的URL
java.home
Java安装目录
java.vm .规范.版本
Java虚拟机规范版本
java.vm .规范.供应商
Java虚拟机规范提供程序
java.vm .规范.名称
Java虚拟机规范名称
java.vm .版本
Java虚拟机实现版本
供应商
Java虚拟机实现提供程序
java.vm.name
Java虚拟机实现名称
java .规范.版本
Java运行时环境规范版本
java .规范.供应商
Java运行时环境规范供应商
java.specification.name
Java运行时环境规范名称
java.class.version
Java类格式版本号
java.class.path
Java类路径
java.library.path
加载库时搜索的路径列表
java.io.tmpdir
的默认临时文件路径
java .编译器
要使用的JIT编译器的名称。
java.ext.dirs
一个或多个扩展目录的路径
os.name
操作系统的名称
os.arch
操作系统的架构
操作系统.版本
操作系统的版本
文件.分隔符
文件分隔符(在UNIX系统中为“/”)
路径.分隔符
路径分隔符(在UNIX系统中为“:”)
分隔线
行分隔符(在UNIX系统中为“/n”)
用户名
用户的帐户名。
user.home
用户的主目录
用户目录
用户的当前工作目录
也可以通过System.setProperty(key,value)在代码级别设置值。
或者web容器级别,当服务器容器启动时,会添加变量,这些变量最终会传递给JVM。
比如我们公司以前是通过system . getproperty( WebLogic . name )获取服务的实例名。
个人理解是weblogic启动服务初始化成JVM。
或者可以直接添加到eclipse中的VM arguments中,这样它就会在程序运行时自动生效。
如下图:
System.getenv(String name)方法的意义和用法
最近用在工程上。
string path=system . getenv(" config _ path ");
走这条路。写下来。
1.在windows中,config_path是指系统的环境变量。比如:
这时,拿出来的路径是:D:work。有了这个路径,你就可以做一些读取文件的操作。
2.linux中的config_path是指在/etc/profile文件末尾配置环境变量export config_path=XXX/XXX。(XXX/XXX是文件地址,退出保存,source /etc/profile生效)。
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。