java System.getProperty()

java System.getProperty()今天在看某项目的代码,发现在读取配置文件的变量值时用到了这个System.getProperty(“属性名”)方法, 关于这个方法,以前都没注意过,今天学习了一下,一开始网上查到的部分资料, System.out.println(“java版本号:”+System.getProperty(“java.version”));//java版本号System.out.printl

今天在看某项目的代码,发现在读取配置文件的变量值时用到了这个System.getProperty(“属性名”)方法,
 关于这个方法,以前都没注意过,今天学习了一下,一开始网上查到的部分资料,
 
System.out.println(“java版本号:” + System.getProperty(“java.version”)); // java版本号
System.out.println(“Java提供商名称:” + System.getProperty(“java.vendor”)); // Java提供商名称
System.out.println(“Java提供商网站:” + System.getProperty(“java.vendor.url”)); // Java提供商网站
System.out.println(“jre目录:” + System.getProperty(“java.home”)); // Java,哦,应该是jre目录
System.out.println(“Java虚拟机规范版本号:” + System.getProperty(“java.vm.specification.version”)); // Java虚拟机规范版本号
System.out.println(“Java虚拟机规范提供商:” + System.getProperty(“java.vm.specification.vendor”)); // Java虚拟机规范提供商
System.out.println(“Java虚拟机规范名称:” + System.getProperty(“java.vm.specification.name”)); // Java虚拟机规范名称
System.out.println(“Java虚拟机版本号:” + System.getProperty(“java.vm.version”)); // Java虚拟机版本号
System.out.println(“Java虚拟机提供商:” + System.getProperty(“java.vm.vendor”)); // Java虚拟机提供商
System.out.println(“Java虚拟机名称:” + System.getProperty(“java.vm.name”)); // Java虚拟机名称
System.out.println(“Java规范版本号:” + System.getProperty(“java.specification.version”)); // Java规范版本号
System.out.println(“Java规范提供商:” + System.getProperty(“java.specification.vendor”)); // Java规范提供商
System.out.println(“Java规范名称:” + System.getProperty(“java.specification.name”)); // Java规范名称
System.out.println(“Java类版本号:” + System.getProperty(“java.class.version”)); // Java类版本号
System.out.println(“Java类路径:” + System.getProperty(“java.class.path”)); // Java类路径
System.out.println(“Java lib路径:” + System.getProperty(“java.library.path”)); // Java lib路径
System.out.println(“Java输入输出临时路径:” + System.getProperty(“java.io.tmpdir”)); // Java输入输出临时路径
System.out.println(“Java编译器:” + System.getProperty(“java.compiler”)); // Java编译器
System.out.println(“Java执行路径:” + System.getProperty(“java.ext.dirs”)); // Java执行路径
System.out.println(“操作系统名称:” + System.getProperty(“os.name”)); // 操作系统名称
System.out.println(“操作系统的架构:” + System.getProperty(“os.arch”)); // 操作系统的架构
System.out.println(“操作系统版本号:” + System.getProperty(“os.version”)); // 操作系统版本号
System.out.println(“文件分隔符:” + System.getProperty(“file.separator”)); // 文件分隔符
System.out.println(“路径分隔符:” + System.getProperty(“path.separator”)); // 路径分隔符
System.out.println(“直线分隔符:” + System.getProperty(“line.separator”)); // 行分隔符(在 UNIX 系统中是“/n”)
System.out.println(“操作系统用户名:” + System.getProperty(“user.name”)); // 用户名
System.out.println(“操作系统用户的主目录:” + System.getProperty(“user.home”)); // 用户的主目录
System.out.println(“当前程序所在目录:” + System.getProperty(“user.dir”)); // 当前程序所在目录

但是我没有看到有这个啊,System.getProperty(“userName”),获取userName的属性值。那么userName的属性值从哪里来的呢?
后来才发了解到,他/她是想首先从java虚拟机里获取该属性名的属性值,若获取不到,再去读取配置文件。

那,又是如何把属性值userName设置到java虚拟机呢?还记得我之前的(http://blog.csdn.net/yy_love_my/article/details/32721757)那篇博文么?就是在启动的时候给main方式设置入参。另外一种方式,就是通过命令行传参。


package com.alibaba.test;

/**
 * 启动脚本传递参数
 * 
 */
public class ArgsTest {

    public static void main(String[] args) {
        int i=0;
        if(args!=null&args.length>0){
            for(String s:args){
                System.out.println("args["+i+++"]="+s);
            }
        }
    }
}

运行结果:
java System.getProperty()

附加:System.getProperty()这种方式只适合自定义全局变量不多的情况下,数量一多则乱,不方便管理。它的好处是相当于把用户环境变量当做了一个类似于spring上下文,哪里都可以得到。不然,你需要每次都去读配置文件,或者,你第一次读完后,你需要将对应的变量值赋给你自定义的bean中对应的属性。另外,也给用户提供了另外一种选择,如果他不想采用你应用里自带的配置文件中的变量值,又不想改动。这就是很好的一种兼容方式吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/13390.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注