今天小编给大家分享一下Java之System.getProperty()的作用及使用方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
System.getProperty()的作用及使用
最近在看一些代码时,很多地方都用到了System.getProperty()、System.load()、System.loadLibrary()等等
System可以有对标准输入,标准输出,错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法System.getProperties()可以确定当前的系统属性,返回值是一个Properties;
System.load(String filename)等同于:System.getProperties().load(String filename)它们的作用是可以从作为动态库的本地文件系统中以指定的文件名加载代码文件。
System.setProperties(Properties propes)将系统属性设置为Properties参数;
System.setProperties(String key,String value)等同于System.getProperties().setProperties(String key,String value):设置指定键指示的系统属性
static void | **setProperties**(Properties props) 将系统属性设置为 Properties 参数。 |
---|---|
static String | **setProperty**(String key, String value) 设置指定键指示的系统属性。 |
static Properties | **getProperties**() 确定当前的系统属性。 |
---|---|
static String | **getProperty**(String key) 获取指定键指示的系统属性。 |
static String | **getProperty**(String key, String def) 获取用指定键描述的系统属性。 |
setProperties
public static void setProperties(Properties props)
将系统属性设置为
Properties
首先,如果有安全管理器,则不带参数直接调用其
checkPropertiesAccess方法。这可能导致一个安全性异常。
参数是 getProperty(String) 方法使用的当前系统属性的集合。如果参数为
null,则忽略当前系统属性的集合。
参数: - 新的系统属性。
SecurityException``checkPropertiesAccess另请参见:
public static Properties getProperties()
确定当前的系统属性。
首先,如果有安全管理器,则不带参数直接调用其
checkPropertiesAccess方法。这可能导致一个安全性异常。
将 getProperty(String) 方法使用的当前系统属性集合作为
Properties对象返回。如果没有当前系统属性集合,则先创建并初始化一个系统属性集合。
这个系统属性集合总是包含以下键的值:
键相关值的描述
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 | 用户的当前工作目录 |
系统属性值中的多个路径是用平台的路径分隔符分隔的。
注意,即使安全管理器不允许执行
getProperties操作,它可能也会选择允许执行 getProperty(String) 操作。
**返回:**抛出: - 如果安全管理器存在并且其 方法不允许访问系统属性。setProperties(java.util.Properties)SecurityExceptionSecurityManager.checkPropertiesAccess()Properties
Java代码
public class TestSystemGetSet { static{ System.setProperty("DB", "mysql");//可以作为全局变量,在任何地方使用 } public static void main(String[] args) { System.out.println(System.getProperty("os.version")); System.out.println(System.getProperty("java.library.path")); System.out.println(System.getProperty("DB")); } }
输出结果:
10.0
C:Javajdk1.8.0_121in;C:WINDOWSSunJavain;C:WINDOWSsystem32;C:WINDOWS;C:/Java/jre8/bin/server;C:/Java/jre8/bin;C:/Java/jre8/lib/amd64;C:Program FilesIBMWebSphere MQjavalib;C:Program FilesIBMWebSphere MQjavalib64;E:appAdministratorproduct11.2.0dbhome_2in;C:ProgramDataOracleJavajavapath;C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:WINDOWSSystem32WindowsPowerShellv1.0;C:Program FilesMySQLMySQL Server 5.1in;D:/mavenin;C:Program Files (x86)Rationalcommon;C:Program FilesIBMWebSphere MQin64;C:Program FilesIBMWebSphere MQin;C:Program FilesIBMWebSphere MQ oolscsamplesin;C:Javajdk1.8.0_121in;C:UsersAdministratorAppDataLocalMicrosoftWindowsApps;D:mavenin;E:softapache-ant-1.10.1in;D:erl9.2in;;C:UsersAdministratorAppDataLocalMicrosoftWindowsApps;E: ooleclipse;;.
mysql