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:\Java\jdk1.8.0_121\bin;C:\windows\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Java/jre8/bin/server;C:/Java/jre8/bin;C:/Java/jre8/lib/amd64;C:\Program Files\IBM\WEBSphere MQ\java\lib;C:\Program Files\IBM\WebSphere MQ\java\lib64;E:\app\Administrator\product\11.2.0\dbhome_2\bin;C:\ProgramData\oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowershell\v1.0\;C:\Program Files\mysql\MySQL Server 5.1\bin;D:/Maven\bin;C:\Program Files (x86)\Rational\common;C:\Program Files\IBM\WebSphere MQ\bin64;C:\Program Files\IBM\WebSphere MQ\bin;C:\Program Files\IBM\WebSphere MQ\tools\c\samples\bin;C:\Java\jdk1.8.0_121\bin;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;D:\maven\bin;E:\soft\apache-ant-1.10.1\bin;D:\erl9.2\bin;;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;E:\tool\eclipse;;.
mysql
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关文章