System.setProperty 与 System.getProperty

System能够有对标准输入,标准输出,错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。java

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):设置指定键指示的系统属性url


对于在程序中若是咱们想获得一个资源文件中对应的键值对的内容,能够有两种方法:
1)使用Properties的load方法,将这个文件先加载进来,以后使用getProperty方法将对应键的值获得,好比:
System.getProperties().load("System.Properties");先加载System.Properties文件
System.getProperties().getProperty("DBType");后将文件中键为DBType的值获得。spa

(System.load(""),System.getProperty("")其实更直观)
2)使用第一种方法键对应的值得灵活性比较大。还有一种方法是将不从文件中获得键对应的值。在程序中去设一个属性,好比:
System.getProperties().setProperty("DBType","SQLServer");先设置一个键位DBType的属性
System.getProperties().getProperty("DBType");后经过getProperty方法获得DBType的值。操作系统


另外使用Properties.getProperty方法的参数也能够使用系统的一些环境变量,列表以下:
Key                     Meaning
-------------------     ------------------------------
"file.separator"        File separator (e.g., "/")
"java.class.path"       Java classpath
"java.class.version"    Java class version number
"java.home"             Java installation directory
"java.vendor"           Java vendor-specific stringorm

"java.vendor.url"       Java vendor URL
"java.version"          Java version number
"line.separator"        Line separator
"os.arch"               Operating system architecture
"os.name"               Operating system nameci

"path.separator"        Path separator (e.g., ":")
"user.dir"              User's current working directory
"user.home"             User home directory
"user.name"             User account name资源

使用其中的key能够获得一些属性,供咱们在程序中使用get

备注:
Microsoft VM是WIN32操做环境中的虚拟机,VM通常安装在大多数操做系统下,也包含在多数IE中。
Microsoft VM存在漏洞容许攻击者对user.dir属性进行访问。user.dir属性包含当前应用程序的工做目录信息,也包含用户名信息,利用这个漏洞能够得到当前用户名称。
能够利用WEB页和HTML形式邮件来触发。虚拟机

相关文章
相关标签/搜索