java程序在不一样的操做系统上运行时,可能须要获取平台相关的属性,或者调用平台命令来完成特定的功能。java提供了System类和Runtime类来与程序的运行平台进行交互。java
1.System类表明当前java程序的运行平台,程序不能建立System类的对象,System类提供一些经常使用的类变量和类方法,容许直接经过System类来与程序的运行平台进行交互。system类提供了表明标准输入输出和错误输出的类变量,并提供了一些静态方法用于访问环境变量、系统属性的方法,还提供了加载文件和动态连接库的方法。加载文件和动态链接库主要对native方法有用。System类还提供了通知系统进行垃圾回收的gc()方法和runFinalization(),System类还有两个获取系统当前时间的方法currentTimeMillis()-获取系统时间以毫秒为单位,nanoTime()-以纳秒为单位。System类的in、out、err分别提供了系统的标准的输入、标准的输出、错误输出流。操作系统
2.Runtime类表明java程序的运行的环境,每一个java程序都有一个与之对应的Runtime实例,应用程序经过该对象与其运行时环境相连。应用程序不能建立本身的Runtime实例,但能够经过getRuntime()方法获取与之相关联的Runtime对象。Runtime类也提供了gc()方法和runFinalization()方法来通知系统进行垃圾回收,清理系统资源,并提供load(String filename)和loadLibrary(String libname)方法来加载文件和动态资源连。Runtime类表明Java程序的运行时环境,能够访问JVM的相关信息,如处理器数量、内存信息。Runtime的另外一个功能,他能够直接启动一个进程来运行操做系统的命令。code
package com.lanou.test; public class Demo05 { public static void main(String[] args) { // TODO Auto-generated method stub Runtime rt=Runtime.getRuntime(); System.out.println("处理器个数:"+rt.availableProcessors()); System.out.println("空闲内存数:"+rt.freeMemory()); System.out.println("总内存数:"+rt.totalMemory()); System.out.println("可用最大内存数:"+rt.maxMemory()); } }
package com.lanou.test; public class Demo06 { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Runtime rt=Runtime.getRuntime(); rt.exec("notepad.exe"); } }