1. Runtime类简介:
1) 代表Java程序的运行时环境,是和Java程序相关联的,每一个运行起来的Java程序都具有一个自己Runtime对象;
2) 和System一样,Java程序的Runtime对象也是由JVM创建的,用户无法自己创建Runtime对象;
3) Runtime主要用来查看当前Java程序所在的JVM的信息(如JVM可使用的处理器数量、内存信息等);
4) Runtime还有一个重要的功能,就是可以执行操作系统的命令,这也是Java程序和OS交互的重要途径;
2. 获取程序的Runtime对象:static Runtime Runtime.getRuntime();
!!由于每个Java程序只能拥有一个自己的Runtime对象,因此必然是要提供静态方法来获取该对象而禁止使用构造器来随意构造对象的;
3. 查看运行时信息:
1) 调用前面获得Runtime对象各种对象方法来获取运行时信息;
2) 这里只介绍几个非常常用的运行时信息查看方法:都是Runtime的对象方法
i. native int availableProcessors(); // 当前JVM可用的处理器数量
ii. native long freeMemory(); // 当前JVM内可用的内存
iii. native long totalMemory(); // 当前JVM的全部内存
iv. native long maxMemory(); // 当前JVM的内存上限(由于JVM可以动态分配内存,因此totalMemory可以动态扩展,但是上限是静态的,无法改变)
!!以上内存大小的单位都是字节(返回值的单位);
4. 执行Shell命令:
1) Process exec(String shellCommand); // 执行后返回该执行子进程的句柄
!!可以进一步利用这个句柄得到命令执行的结果;
2) 示例:Runtime.getRuntime().exec("dir");
3) 当然Java重载了很多exec版本,使Java和OS的交互方式更加丰富;