什么是java的系统属性

在java应用程序运行时,特别是需要在跨平台工作环境中运行时,需要确定操作系统的类型、用户JDK版本、用户工作目录等随工作平台变化的信息,以确保程序正确运行。这些程序的运行环境信息为java平台的自身配置,被称为java的系统属性。系统属性与操作系统的环境变量类似,可以认为是JVM虚拟机的环境变量。(其实JVM本身就相当于一个计算机,自然它本身也需要一些自己的环境变量 ,JVM中称为系统属性)

系统属性与环境变量都是名称与值之间的映射。两种机制都可以将用户定义的信息传递给java进程。全局变量产生的更多的是全局效应,他们不仅对java子进程可见,而且对于定义它们的所有子进程都是可见的。程序中尽可能使用系统属性,而环境变量应该在全局范围需要时才使用。

如何查看java的系统属性

方法一、jvisualvm工具
%JAVA_HOEM%/bin/jvisulavm,打开java visualVM软件,本地---Visual VM ---概述---系统属性
方法二、System.getProperty,System.getProperties方法获取
System.getProperties() : 获取所有系统属性
System.getProperty(String name) :获取指定的系统属性
System.getProperty(String name, String def) :获取指定的系统属性,如果不存在该属性,则返回默认值def。
此外,System模块提供了获取环境变量的方法:
System.getenv() : 获取所有的环境变量
System.getenv(String name) : 获取指定名称的环境变量值
System方法查看系统属性和环境变量示例
System.out.println(System.getProperty("sun.arch.data.model"));//获取java运行时的数据位数
执行结果:(依赖程序运行的环境)
64
System.getProperties().list(System.out);// 获取所有的系统属性
执行结果这里不展示。
System.out.println(System.getenv("OS"));//获取操作系统类型
执行结果:(依赖程序运行的环境)
Windows_NT
设置系统属性
System类中提供设置系统属性的方法setProperty,使用方法如下:
System.setProperty("NU_HOME","E:\\nucleon";
System.out.println(System.getProperty("NU_HOME"));
执行结果:
E:\nucleon
常见的系统变量
键
含义
OS
操作系统类型
COMPUTERNAME
计算机名
Windir
系统安装目录
SystemRoot
系统启动目录
USERNAME
用户名
USERPROFILE
用户目录
USERDOMAIN
用户域的名称
PATHEXT
可执行文件后缀
TEMP
用户临时文件目录
TEMP
用户临时文件目录
TMP
临时目录
PATH
path环境变量
......
......
常见的系统属性
键
含义
java.runtime.name
java运行时名称
sun.boot.library.path
jre的bin路径
java.vm.version
java虚拟机版本
java.vm.vendor
java虚拟机供应商
java.vendor.url
java供应商网址
java.vm.name
java虚拟机名称
user.country
国家编码
user.home
当前程序根目录
user.timezone
计算机当前所在时区
user.name
当前计算机用户名称
file.separator
文件路径分隔符
file.encoding
文件编码
......
.......