微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java Review (十九、基础类库----系统相关类)

@



Java 程序在不同操作系统上运行时,可能需要取得平台相关的属性,或者调用平台命令来完成特定功能。 Java 提供了 System 类和 Runtime 类来与程序的运行平台进行交互。

System

System 类代表 当 前 Java 程序的运行平台,程序不能创建 System 类的对象, System 类提供了 一 些类变量和类方法,允许直接通过 System 类来调用这些类变量和类方法。System 类提供了代表标准输入、标准输出错误输出类变量,并提供了 一些静态方法用于访问环境变量、系统属性方法,还提供了加载文件和动态链接库的方法 。 下面程序通过 System 类来访问操作的环境变量和系统属性

SystemTest.java

public test{
  public class SystemTest {
	public static void main(String[] args) throws Exception{
	      // 获取系统所有的环境变量
	      Map<String,String> env = System.getenv ();
	      for (String name : env.keySet()){
	         System.out.println(name + " ---> " + env .get(name)) ;
	      }
	     //获取指定环境变量的值
	     System .out .println(System.getenv( "JAVA_HOME ")) ;
	     //获取所有的系统属性
	     Properties props = System .getProperties();
	     //将所有的系统属性保存到 props.txt 文件中
	     props.store(new FileOutputStream( "props.txt"),"System Properties ");
	     //输出特定的系统属性
	     System.out.println(System .getProperty( "os.name"));
	   }

}
   


运行结果

在这里插入图片描述


该程序运行结束后还会在当前路径下生成一个 props.txt 文件 , 该文件中记录了当前平台的所有系统属性


System方法

方法 描述
static void gc() 通知系统进行垃圾回收
runFinalization() 通知系统进行资源清理
static long currentTimeMillis() 方法返回当前时间,单位为毫秒
nanoTime() 方法返回最精确的可用系统计时器的当前值,单位毫微秒
static int identityHashCode(Object x) 方法返回相同的哈希代码为给定的对象会由认hashCode方法(返回),给定对象的类是否重写hashCode()
static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length) 方法会复制从指定源数组的数组,开始在指定的位置,到目标数组的指定位置。
static String clearProperty(String key) 方法删除指定键指示的系统属性
static Console console() 方法返回与当前Java虚拟机关联的唯一Console对象(如果有)
static long currentTimeMillis() 方法返回当前时间,单位为毫秒。
static void exit(int status) 方法终止当前正在运行的Java虚拟机。
static Map<String,String> getenv() 方法返回当前系统环境的不可改变的字符串映射视图。
static String getenv(String name) 方法获取指定的环境变量的值。
static Properties getProperties() 方法确定当前系统性能
static String getProperty(String key) 方法获取指定键指示的系统属性
static String getProperty(String key,String def) 方法获取指定键指定的系统属性
static SecurityManager getSecurityManager() 方法得到了系统的安全接口。
static int identityHashCode(Object x) 方法返回相同的哈希代码为给定的对象会由认hashCode方法(返回),给定对象的类是否重写hashCode()。
static Channel inheritedChannel() 方法返回从创建此Java虚拟机的实体中继承的通道。
static void load(String filename) 方法加载使用从本地文件系统中的指定文件名作为一个动态库中的代码文件
static void loadLibrary(String libname) 方法加载libname指示参数指定的系统库。
static String mapLibraryName(String libname) 方法映射库名称为表示本机库的平台特定的字符串。
static void setErr(PrintStream err) 方法重新分配“标准”错误输出流。
static void setIn(InputStream in) 方法重新分配“标准”输入流。
static void setout(PrintStream out) 方法重新分配“标准”输出流。
static void setProperties(Properties props) 方法设置系统属性属性参数。
static String setProperty(String key,String value) 方法设置指定键指示的系统属性
static void setSecurityManager(SecurityManager s) 方法设置系统的安全性。

API:@L_502_2@


Runtime 类

Runtime 类代表 Java 程序 的运行时环境,每个 Java 程序都有 一个与之对应的 Runtime 实例 , 应程序通过该对象与其运行时环境相连。应用程序不能创建自己的 Runtime 实例 , 但可以通过 getRuntime()方法获取与之关联的 Runtime对 象。

与 System 类似的是, Runtime 类也提供了 gc()方法和 runFinalization()方法通知系统进行垃圾回收 、清理系统资源 , 并提供了 load(String filename)和 loadLibrary(String libname)方法来加载文件和动态链接库 。

Runtime 类代表 Java 程序的运行 时环境,可以访问JVM的相关信息,如处理器数量内存信息等。

如下程序所示:

RuntimeTest.java

public class RuntimeTest {

	public static void main(String[] args) {
		//获取 Java 程序关联的运行时对象
		Runtime rt = Runtime . getRuntime() ;
		//获取 JVM 相关信息
		System.out.println (" 处理器数量 "+ rt.availableProcessors());
		System.out.println (" 空 闲 内存数: "+ rt. freeMemory () ) ;
		System.out.println ("总 内 存数:"+ rt . totalMemory());
		System.out.println("可用最大 内 存数:"+ rt . maxMemory());

	}

}

Runtime 类还有一个功能 它可以直接单独启动一个进程来运行操作系统的命令,如下程序所示 :
ExecTest.java
public class ExecTest {

	public static void main(String[] args) throws Exception{
		Runtime rt = Runtime .getRuntime () ;
		rt.exec ("notepad.exe") ;
	}

}

API:java.lang.Runtime




参考:
【1】:《疯狂Java讲义》
【2】:.com/java/lang/java_lang_system.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐