什么是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

文件编码

......

.......