本文参考文章:https://blog.csdn.net/bbirdsky/article/details/8136310
https://blog.csdn.net/rexct392358928/article/details/51362880
https://blog.csdn.net/bbirdsky/article/details/8136310
什么是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:
ucleon
常见的系统变量
键 | 含义 |
---|---|
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 | 文件编码 |
...... | ....... |