亲宝软件园·资讯

展开

System.getenv与System.getProperty区别 浅谈System.getenv()和System.getProperty()的区别

一步一台阶 人气:0
想了解浅谈System.getenv()和System.getProperty()的区别的相关内容吗,一步一台阶在本文为您仔细讲解System.getenv与System.getProperty区别的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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​生效)。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

加载全部内容

相关教程
猜你喜欢
用户评论