一、Runtime类
- 每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
- 可以通过 getRuntime 方法获取当前运行时。
- 应用程序不能创建自己的 Runtime 类实例。
二、常用方法
public class Runtime
{
private static Runtime currentRuntime = new Runtime();
//返回与当前 Java 应用程序相关的运行时对象
public static Runtime getRuntime() {
return currentRuntime;
}
/** Don't let anyone else instantiate this class */
private Runtime() {}
//常用方法**********************************************
/**
*向 Java 虚拟机返回可用处理器的数目。
*该值在特定的虚拟机调用期间可能发生更改
*因此,对可用处理器数目很敏感的应用程序应该不定期地轮询该属性,并相应地调整其资源用法。
*/
public int availableProcessors(){}
//在单独的进程中执行指定的字符串命令。
//返回一个新的 Process 对象,用于管理子进程
public Process exec(String command)
throws IOException{}
//通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机,System.exit(intnum)就是调用的这个方法
public void exit(int status){}
//返回 Java 虚拟机中的空闲内存量。调用 gc 方法可能导致 freeMemory 返回值的增加
public long freeMemory(){}
//运行垃圾回收器,方法 System.gc() 是调用此方法的一种传统而便捷的方式
public void gc(){}
//返回 Java 虚拟机试图使用的最大内存量。如果内存本身没有限制,则返回值 Long.MAX_VALUE
public long maxMemory(){}
//返回 Java 虚拟机中的内存总量,此方法返回的值可能随时间的推移而变化,这取决于主机环境
public long totalMemory(){}
}
三、Process类
- ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,
- 该实例可用来控制进程并获得相关信息。
- Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。
public abstract class Process
{
//杀掉子进程。强制终止此 Process 对象表示的子进程
public abstract void destroy();
/**导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。
*如果已终止该子进程,此方法立即返回。
*如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程
*/
public abstract int waitFor()
throws InterruptedException;
//获取子进程的输出流。输出流被传送给由该 Process 对象表示的进程的标准输入流
public abstract OutputStream getOutputStream();
//获取子进程的输入流。输入流获得由该 Process 对象表示的进程的标准输出流
public abstract InputStream getInputStream();
//获取子进程的错误流。错误流获得由该 Process 对象表示的进程的错误输出流传送的数据。
public abstract InputStream getErrorStream();
}