zoukankan      html  css  js  c++  java
  • java 获取系统变量(环境变量和环境变量)

    前言

    环境变量这个概念不陌生, 就是操作系统的环境变量。

    系统变量就是java本身维护的变量。 通过 System.getProperty 的方式获取。

    对于不同的操作系统来说。 环境变量的处理可能会有一些不统一的地方, 比方说: 不区分大写和小写 等等。


    Java 获取环境变量

    Java 获取环境变量的方式非常easy:

    System.getEnv()  得到全部的环境变量

    System.getEnv(key) 得到某个环境变量的值

    		Map map = System.getenv();
    		Iterator it = map.entrySet().iterator();
    		while(it.hasNext())
    		{
    			Entry entry = (Entry)it.next();
    			System.out.print(entry.getKey()+"=");
    			System.out.println(entry.getValue());
    		}
    		
    假设是windows 系统, 打印出来的值通过从 “我的电脑” 里看到的环境变量是一样的。


    Java 获取和设置系统变量

    Java 获取环境变量的方式也非常easy:

    System.getProperties()  得到全部的系统变量

    System.getProperty(key)  得到某个系统变量的值

    		Properties properties = System.getProperties();
    		Iterator it =  properties.entrySet().iterator();
    		while(it.hasNext())
    		{
    			Entry entry = (Entry)it.next();
    			System.out.print(entry.getKey()+"=");
    			System.out.println(entry.getValue());
    		}

     系统变量除了能够获取之外, 还能够通过System.setProperty(key, value)  的方式设置自己须要的系统变量。


    默认情况下。 java 设置了哪些系统变量:

    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 用户的当前工作文件夹




    补充

    1 . 在.bat ;  .cmd 或  .sh 中会通过 set 的方式设置一些变量。

    比方weblogic 的 setDomainEnv.cmd

    set SUN_JAVA_HOME=C:OracleMiddlewarejdk160_21

    这里设置的是环境变量

    2. 在log4j 的配置中。 有时会配置log file 的产生路径。

    比方 ${LOG_DIR}/logfile.log, 这里的LOG_DIR 是被系统属性的变量替换的。

    3. 看一下java 源代码。 通过 System.getProperties() 的方式获取系统变量时, 会有一个安全的检查

        public static Properties getProperties() {
    	SecurityManager sm = getSecurityManager();
            if (sm != null) {
    	    sm.checkPropertiesAccess();
    	}
    
    	return props;
        }

    在 单个Java application  測试时, System 里的SecurityManager 是空的。

    在Applet 执行时, 会结合 .policy 这个文件来检查权限。


    假设给一个空的SecurityManager 会发现就会抛出权限异常。

    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		System.setSecurityManager(new SecurityManager());
    		//SecurityManager sm = System.getSecurityManager();
    		//System.out.println(sm);
    		System.getSecurityManager().checkPropertiesAccess();
    	}


  • 相关阅读:
    Java基础学习总结(41)——JPA常用注解
    Java基础学习总结(41)——JPA常用注解
    【云速建站】视频播放专题
    一招教你如何修复MySQL slave中继日志损坏问题
    【nodejs原理&源码赏析(3)】欣赏手术级的原型链加工艺术
    【云速建站】后台数据批量导入导出
    【云速建站】会员注册弹窗添加及设置
    【nodejs原理&源码赏析(2)】KOA中间件的基本运作原理
    【nodejs原理&源码赏析(1)】Express中间件系统的基本实现
    补习系列(5)-springboot- restful应用
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4592334.html
Copyright © 2011-2022 走看看