Runtime 类
R u n t i m e 类 是 J a v a 中 与 运 行 时 环 境 有 关 的 操 作 类 , 1.利 用 此 类 可 以 取 得 系 统 的 内 存 信 息 ,也 可以2.利用此类产生新的操作系统进程对象。下面具体介绍Runtime类的使用.
11.2.1 认识 Runtime 类
11.2.2得到JVM的内存空间信息
【例11.10】观察JVM的内存空间
package jiaqi;
public class demo310_1 {
public static void main(String[] args)
{
Runtime run = Runtime.getRuntime();
System.out.println("最大:"+run.maxMemory());
System.out.println("空闲:"+run.freeMemory());
String str = "{}{}{}";
for(int i = 0; i<1000;i++)
{
str+=i;
}
System.out.println("执行后空闲:"+run.freeMemory());
run.gc();
System.out.println("gc后:"+run.freeMemory());
}
}
11.2.3 Runtime 类与 Process 类
【例11.11】调用本机可执行程序
package jiaqi;
public class demo310_1 {
public static void main(String[] args)
{
Runtime run = Runtime.getRuntime();
try
{
run.exec("notepad.exe");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
程序执行后,一个记事本程序会直接弹出来。
当然,也可以对此程序进行进一步的控制。
例如,可以在5s之后让记事本关闭,那么此时就需要观察exec()
方法的返回值类。此方法的返回值为Process
,表示一个操作系统的进程类。实际上,如果一个记事本程序启动后,肯定会在操作系统中增加一个进程,此过程可以直接通过Windows的任务管理器查看。
也就是说,直接控制Process就可以进行系统进程的控制,如果现在要想通过程序让此进程消失,则可以直接使用Process类中的以下方法。
public void destroy()
【例11.12】让记事本进程运行5s后消失
package jiaqi;
public class demo310_1 {
public static void main(String[] args)
{
Runtime run = Runtime.getRuntime();
Process pro = null;
try
{
pro = run.exec("notepad.exe");
}
catch (Exception e)
{
e.printStackTrace();
}
try
{
Thread.sleep(5000);
}
catch (Exception e)
{
e.printStackTrace();
}
pro.destroy();
}
}