System类及其getProterties( )和getProperty( )
System这个类来源:
public final class System extends Object
System类包含若干个有用的类字段和方法,而且不能被实例化。
System类提供的工具包括标准输入,标准输出和标准错误输出流;
能够获得外部定义的属性和环境变量;
作为一种加载文件和库的方法;
为快速复制数组的一部分提供了工具方法。
The System class contains several useful class fields and methods. It cannot be instantiated.
Among the facilities provided by the System class are standard input,
standard output, and error output streams;
access to externally defined properties and environment variables;
a means of loading files and libraries;
and a utility method for quickly copying a portion of an array.
System中的方法getProperties():
public static Properties getProperties()
确定当前系统的属性。
首先,如果存在安全管理员,将首先通过无参调用它的checkPropertiesAccess方法。
这可能会抛出一个安全异常(security exception)。
通过getProperties()方法把当前系统的属性以一个Properties对象的方式返回。
如果当前没有系统属性,那么这个方法首先会创建并初始化一个系统属性的集合。
这个系统属性的集合将总包含如下的键:
| key | value |
| java.version | Java Runtime Environment version |
| java.vendor | Java Runtime Environment vendor |
| java.vendor.url | Java vendor URL |
| java.home | Java installation directory |
| java.vm.specification.version | Java Virtual Machine specification version |
| java.vm.specification.vendor | Java Virtual Machine specification vendor |
| java.vm.specification.name | Java Virtual Machine specification name |
| java.vm.version | Java Virtual Machine implementation version |
| java.vm.vendor | Java Virtual Machine implementation vendor |
| java.vm.name | Java Virtual Machine implementation name |
| java.specification.version | Java Runtime Environment specification version |
| java.specification.vendor | Java Runtime Environment specification vendor |
| java.specification.name | Java Runtime Environment specification name |
| java.class.version | Java class format version number |
| java.class.path | Java class path |
| java.library.path | List of paths to search when loading libraries |
| java.io.tmpdir | Default temp file path |
| java.compiler | Name of JIT compiler to use |
| java.ext.dirs | Path of extension directory or directories |
| os.name | Operating system name |
| os.arch | Operating system architecture |
| os.version | Operating system version |
| file.separator | File separator ("/" on UNIX) |
| path.separator | Path separator (":" on UNIX) |
| line.separator | Line separator ("\n" on UNIX) |
| user.name | User's account name |
| user.home | User's home directory |
| user.dir | User's current working directory |
System的getProperty(String key)方法的一个原型为:
public static String getProperty(String key)
根据执行的key来获得系统属性。
如果存在安全管理员,将首先通过无参调用它的checkPropertyAccess方法。这可能会抛出安全异常。
如果当前没有系统属性的集合,将会像getProperties那样先创建并初始化一个系统属性的集合。
参数:
key - 系统属性的名称。
返回值:
系统属性的字符串值,或者返回null如果没有和键对应的属性。
异常抛出:
SecurityException - 如果存在安全管理员而且它的checkPropertyAccess不允许获得执行的系统属性。
NullPointerException - 如果键是null。
IllegalArgumentException - 如果键是empty。
getProperty的另一个函数原型:
public static String getProperty(String key, String def)
根据执行的key来获得系统属性。
如果存在安全管理员,将首先通过无参调用它的checkPropertyAccess方法。这可能会抛出安全异常。
如果当前没有系统属性的集合,将会像getProperties那样先创建并初始化一个系统属性的集合。
参数:
key - 系统属性的名称。
def - 一个默认地值。
返回值:
系统属性的字符串,或者默认值如果键对应的属性不存在
异常抛出:
SecurityException - 如果存在安全管理员而且它的checkPropertyAccess不允许获得执行的系统属性。
NullPointerException - 如果键是null。
IllegalArgumentException - 如果键是empty。
package com.Properties.test; import java.util.Enumeration;
import java.util.Properties; public class testProperties {
public static void main(String[] args) {
// System.getProperties()返回的是一个Properties对象
// 方法一
Properties p = System.getProperties();
p.list(System.out); // 方法二
String a;
Enumeration e = System.getProperties().propertyNames();
while(e.hasMoreElements()) {
a = (String) e.nextElement();
System.out.println( a + "=" +System.getProperty(a)); System.out.println( a + "=" +System.getProperty(a,"tuhooo"));
}
// 最后如果没有这个键,就会用默认的键值代进去
System.out.println( "Is this java" + "=" +System.getProperty("Is this java","tuhooo"));
}
}
End
System类及其getProterties( )和getProperty( )的更多相关文章
- java中的System类
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变 ...
- Java api 入门教程 之 JAVA的SYSTEM类
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变 ...
- System类
System类是一些与系统相关属性和方法的集合,而且System类中所有的属性都是静态的,要想引用这些属性和方法,直接使用System类调用即可. //======================== ...
- java 的SYSTEM类【转】
java 的SYSTEM类[转] Posted on 2009-12-03 16:46 火之光 阅读(728) 评论(0) 编辑 收藏 System类代表系统,系统级的很多属性和控制方法都放置在该类的 ...
- System类及其常用函数
System 类包含一些有用的类字段和方法.它不能被实例化. 常用方法: 1.static void arraycopy(Object src, int srcPos, Object dest, in ...
- java中System类简介(转)
上次面试中遇到的一个问题,问到System.out.println()中的out是不是内部类[不是内部类],当时就给问蒙了,直观感觉out应该是System类的一个属性,跟内部类有什么关系?而且之前整 ...
- java学习笔记之System类
System类常用总结 System类概述 java.lang.System类,系统属性信息工具类 常用静态方法: 1. public static long currentTimeMillis() ...
- java.lang.system 类源码解读
通过每块代码进行源码解读,并发现源码使用的技术栈,扩展视野. registerNatives 方法解读 /* register the natives via the static initializ ...
- JAVA_SE基础——67.System类
System类对大家都不陌生吧! 以前经常需要打印结果时使用的都是"System.out.println()"语句,这句代码中就使用了System类.System类定义了一些与系统 ...
随机推荐
- WinForm如何调用Web Service
参考地址 今天看了李天平关于WinForm调用Web Service的代码,我自己模仿做一个代码基本都是复制粘贴的,结果不好使.郁闷的是,又碰到那个该死的GET调用Web Service,我想肯定又是 ...
- function声明的深刻含义和jquery属性注入区别
在js中有两类对象 1.json对象,仅仅代表对象而已 2.function声明的对象 (1) 它定义了构造器 可以用new 对象 来初始化 数据对象 (2) 它指明对象是一个函数对象 通过后面加 ...
- JS如何利用定时器实现长按事件
本篇文章由:http://xinpure.com/js-how-to-use-timer-press-event/ JS 原生事件并没有长按事件,但是我们可以利用一些原有的事件,来实现长按事件 任务需 ...
- python学习笔记——爬虫的抓取策略
1 深度优先算法 2 广度/宽度优先策略 3 完全二叉树遍历结果 深度优先遍历的结果:[1, 3, 5, 7, 9, 4, 12, 11, 2, 6, 14, 13, 8, 10] 广度优先遍历的结果 ...
- linux上创建PV/VG/LV
LVM的整体思路是: 首先创建PV-->然后创建VG并将多个PV加到VG里-->然后创建LV-->格式化分区-->mount分区 1.创建PV pvcreate /dev/sd ...
- 命名管道FIFO和mkfifo函数
进程间通信必须通过内核提供的通道,而且必须有一种办法在进程中标识内核提供的某个通道,前面讲过的匿名管道是用打开的文件描述符来标识的.如果要互相通信的几个进程没有从公共祖先那里继承文件描述符,它们怎么通 ...
- lua学习笔记13:协程具体解释和举例
一.coroutine.create创建协程 參数是协程的主函数,返回一个thread对象 co = coroutine.create(function() print("coroutine ...
- ES6 class setTimeout promise async/await 测试Demo
class Person { async getVersion () { return new Promise((resolve, reject) => { setTimeout(functio ...
- jquery.dataTables的用法
写页面前端时,使用表格的插件可以快速漂亮的排版.本例子中使用jquery.dataTables来处理table.直接来点干货 html代码如下 <table cellpadding=" ...
- unity save layout
调整完布局,点Save Layout,并命名,就得到一个新的layout,以后可以直接在下拉菜单中选择并切换到此布局.