小程序容器助力企业在金融与物联网领域实现高效合规运营,带来的新机遇与挑战如何管理?
1422
2023-01-08
浅谈System.getenv()和System.getProperty()的区别
最近遇到一个需求,服务器实例需要获取当前的环境变量。经过查资料,发现环境变量可以在两个地方设置。
一、在系统层面设置环境变量
在系统层面设置环境变量,之前我们应该都操作过,以windows系统为例
System.getenv()可以获取的在这里设置的变量。
二、在java虚拟机层面设置环境变量
个人理解,System.getProperty()可以获取在JVM 层面的变量,有些变量在JVM启动后,就内置了,如:
参数值
参数含义
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
文件分隔符(在 UNIX 系统中是“/” )
path.separator
路径分隔符(在 UNIX 系统中是“:” )
line.separator
行分隔符(在 UNIX 系统中是“/n” )
user.name
用户的账户名称
user.home
用户的主目录
user.dir
用户的当前工作目录
还可以在代码层面,通过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指的是系统的环境变量。如:
此时取出来的path为:D:\work。有了这个路径就可以做一些读取文件的操作了。
2.在linux中config_path指的是在/etc/profile文件末尾配置环境变量 export config_path=XXX/XXX。(XXX/XXX为文件地址,退出保存,并source /etc/profile生效)。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~