System.getProperty 引发的探索
System.getProperty() 引发的探索
1、系统环境变量和用户环境变量
- 系统环境变量:所有用户都生效。切换用户,系统变量都是可以使用的。
- 用户环境变量:计算机可以添加好几个用户,只有选中当前用户时才可以使用相应的程序。每个用户都要弹出设置自己的用户变量,各用户之间相互独立。
2、System.getProperty()
System.getProperty() 是获取系统的相关属性,包括文件编码、操作系统名称、区域、用户名等,此属性一般是由 JVM 自动获取,不能设置。这个必须接收一个 String 类型的参数,并且返回一个 String 类型的值。如果想要获取所有的系统的相关属性值可以使用 System.getProperties() 方法。
测试代码:
java.runtime.name: Java 运行时环境名称
sun.boot.library.path: D:\java\jdk\jre\bin
java.vm.version: Java 虚拟机实现版本
java.vm.vendor: Java 虚拟机实现供应商
java.vendor.url: http://java.oracle.com/
path.separator: 路径分隔符(在 UNIX 系统中是“:” ,windows 系统中是“;”)
java.vm.name: Java 虚拟机实现名称
file.encoding.pkg: sun.io
user.country: CN
user.script:
sun.java.launcher: SUN_STANDARD
sun.os.patch.level:
java.vm.specification.name: Java Virtual Machine Specification
user.dir: E:\ChormeDownload\项目\demo\demo
java.runtime.version: 1.8.0_172-b11
java.awt.graphicsenv: sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs: D:\java\jdk\jre\lib\endorsed
os.arch: amd64
java.io.tmpdir: C:\Users\liz\AppData\Local\Temp\
line.separator:
3、System.getenv()
获取指定环境变量的值。环境变量是与系统有关的外部命名值。有两个构造方法:
- 有参数的。String getenv(String name),根据传入的 name 值获取相应的环境变量(String)
public static String getenv(String name) {
SecurityManager sm = getSecurityManager();
if (sm != null) {
sm.checkPermission(new RuntimePermission("getenv." + name));
}
return ProcessEnvironment.getenv(name);
}
- 无参数的。Map<String,String> getenv(),返回的是所有的环境变量值(Map)
public static java.util.Map<String,String> getenv() {
SecurityManager sm = getSecurityManager();
if (sm != null) {
sm.checkPermission(new RuntimePermission("getenv.*"));
}
return ProcessEnvironment.getenv();
}