System许多函数的使用都是等价于Runtime.getRuntime(),可见System和Runtime之间的联系是多么密切,实际上System是依赖于Runtime类的。

    Runtime的功能如下:

  • 查看系统内存

  • 终止JVM虚拟机

  • 运行系统程序

  • 使用关闭钩子

Runtime类不同于System类,它的函数大部分都不是静态的,只有一个静态函数getRuntime()。每个Java应用程序都有一个Runtime实例,使应用程序能够与其运行环境相连接,我们可通过该函数获得一个Runtime()实例,应用程序不能创建自己的Runtime实例,然后再调用其他函数。

    (1)查看系统内存

long freeMemory();//返回Java虚拟机的空闲内存量
long maxMemory();//返回Java虚拟机试图使用的最大内存量
long totalMemory();//返回Java虚拟机的内存总量

代码如下:

package org.test.envm;

public class RuntimeEvnt {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("内存总量:"+Runtime.getRuntime().totalMemory());
		System.out.println("最大内存量:"+Runtime.getRuntime().maxMemory());
		System.out.println("空闲内存量:"+Runtime.getRuntime().freeMemory());
	}

}

    (2)终止虚拟机

    可以使用exit(int status)通过启动虚拟机的关闭序列

    可以使用halt(int status)强制终止目前正在运行的虚拟机

    (3)运行系统程序

    1、打开记事本

        Runtime.getRuntime().exec("notepad");

    2、打开word

        Runtime.getRuntime().exec("cmd/c start Winword");

    3、执行批处理

        Runtime.getRuntime().exec("cmd.exe/C d:/demo/run.bat");