Java Runtime
程序员文章站
2022-04-19 21:27:17
...
先来看看这个Runtime是个什么,Android API文档上的说明如下
Every Java application has a single instance of class Runtime that allows the application to interface with the environment in which the application is running.
首先Runtime是单例的,每个应用程序只有一个,其次应用程序可以通过它来访问当前运行环境(JVM)
看看它能干什么吧
执行命令行
Java魔法堂:找外援的利器——Runtime.exec详解
Process process = Runtime.getRuntime().exec("cmd /c echo 你好");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(),"utf-8"));
for(String line=reader.readLine();line!=null;line=reader.readLine()){
System.out.println(line);
}
Process看名字就知道代表了一个进程Runtime的exec方法就是在一条单独进程中执行命令。这个命令要指明使用的shell,这里是cmd
,以及表明执行完命令后退出shell,这里是/c
参数。在Linux下用sh -c
命令的输出流和错误流会把数据输出到一个缓冲池中,如果缓冲池满了,那执行的命令会暂停,可以通过读取缓冲池中的数据,来给缓冲池腾出空间。要从缓冲池中读取数据,所以打开的是输入流
Process对象的waitFor方法可以让当前线程等待命令执行完后才继续执行,该方法返回一个int值表示命令执行是否成功,用的是shell中的逻辑,也就是0表示成功
内存管理
freeMemory():JVM当前可用的内存
totalMemory():JVM已经当前向系统申请的内存
maxMemory():JVM能够申请的最大内存
这三个方法返回的数值的单位都是byte