前言

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

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

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

Java 获取环境变量

Java 获取环境变量的方式很简单:

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 获取环境变量的方式也很简单:

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:\Oracle\Middleware\jdk160_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 stubSystem.setSecurityManager(new SecurityManager());//SecurityManager sm = System.getSecurityManager();//System.out.println(sm);System.getSecurityManager().checkPropertiesAccess();}

java 获取系统变量(环境变量和设置变量)相关推荐

  1. Java获取系统时间

    Java获取系统时间 Java获取系统时间 在java 中,有很多种方法都可以获取到系统的当前时间,但也需要到对应的类,不同的类自然有不同的方法.这里为大家介绍获取系统当前时间的四种方式. 1. 通过 ...

  2. java获取系统当前时间格式化_java 获取系统当前时间并格式化

    java 获取系统当前时间并格式化 CreateTime--2018年5月9日11:41:00 Author:Marydon 实现方式有三种 updateTime--2018年7月23日09点32分 ...

  3. Java获取系统当前时间

    本篇文章帮大家学习java获取系统当前时间,包含了Java获取系统当前时间使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 以下实例演示了如何使用 Date 类及 Simp ...

  4. Spring配置文件获取系统的环境变量

    系统:windows系统 在命令行执行: 设置系统环境变量:set env=production 取系统环境变量:echo %env%            回车 production 在Spring ...

  5. java获取系统属性_Java获取系统属性

    1.System类 The System class contains several useful class fields and methods. It cannot be instantiat ...

  6. 解决java获取系统时间差8个小时 专题

    在WIN7下发现一些Java的程序获取系统时间比真实时间差了8个小时,怀疑是Java程序沿用了低版本的JDK,获取时间时取的GSM 0时区,而中国是GSM +8,所以查了8个小时,解决办法如下: 修改 ...

  7. java 获取系统的时区_【转】Java 获取操作系统时区

    Java 可以通过 Timezone 获取时区,但是通过 Timezone 获取的时区是 JVM 初始化时保存的时区,并不是操作系统所设置的时区.当修改过操作系统的时区后,JVM 并不会同步更新.Ti ...

  8. Java 获取系统时间和网络时间(网址)

    Java项目开发时间获取分为:系统时间 和 网络时间 . 一般Java开发中时间获取基本上使用系统当前时间,但是像'社交通信','购物平台'等就需要获取网络时间. import java.net.UR ...

  9. Java获取系统日期时间

    方法一:利用Calendar类来获取当前日期和时间,代码如下: /*** 获取系统时间* @return */public String getDate(){Calendar calendar = C ...

最新文章

  1. linux游戏欢迎界面,制作Linux登录欢迎界面
  2. Android 升级到android studio 2.2项目死活run不起来
  3. Java中集合的自定义运算符
  4. 原理c++_浅谈C/S和B/S架构的工作原理及优缺点
  5. 【Linux】Linux简介以及 与UNIX区别
  6. web html分块加载,javascript – 使用webpack代码拆分,如何加载块和HTML布局?
  7. CF GYM 100703G Game of numbers
  8. 为什么现在年轻人都在寻找副业、兼职?难道只有物价生活成本上涨?
  9. MySQL管理工具:mysql、mysqladmin、mysqldump
  10. 华为机试HJ4:字符串分隔
  11. winform上传文件解决方案
  12. 从你的全世界路过-人到难处需放胆
  13. Google账号注册失败 无法向手机发验证码
  14. 基于特征的真菌分解木材的理解
  15. PostgreSQL下载安装
  16. 神经网络学习——第一个代码学习
  17. html 让页脚始终底部,CSS + DIV 让页脚始终保持在页面底部
  18. 多元线性回归分析spss结果解读_SPSS经典线性回归分析之一——线性回归分析
  19. GetElementById
  20. Deepin20固定无线网卡多个IP地址

热门文章

  1. 关于XML序列化与CultureInfo
  2. C#空接合操作符——??
  3. JQuery - Ajax和Tomcat跨域请求问题解决方法!
  4. springboot上传文件过大,全局异常捕获,客户端没有返回值
  5. WSDM2022 | 数据困境: 我们究竟有多了解推荐系统数据集?(附视频、论文及代码)...
  6. 深度学习技术驱动下的人工智能时代!
  7. 全球首发!惯性导航导论(剑桥大学)第九部分
  8. python批量读取文件内容_Python之批量读取文件【面试必学】
  9. 吴恩达《机器学习》第十一章:机器学习系统的设计
  10. influxDB框架 数据存储 TSM 数据操作等详解