Java Runtime

来源:互联网 发布:php应用 编辑:程序博客网 时间:2024/05/20 18:54

先来看看这个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