Runtime类和Process类
每一个java程序都有一个Runtime类的单一实例。
通过Runtime.getRuntime()获取Runtime类的实例。
Runtime类是使用单例模式的一个例子。
获取Runtime的好处:通过Runtime的一个对象获取java虚拟机当前的自由内存或总内存,也就是说:Runtime类对象提供了一个应用程序和环境之间的接口。
Runtime对象的另外一个作用:通过exec()执行外部的程序,作为当前进程的一个子进程。
代码
public
class
RuntimeTest {
public static void main(String[] args) throws Exception{
Runtime runtime = Runtime.getRuntime(); // Runtime.getRuntime()用来获取Runtime类的一个实例。
runtime.exec( " notepad " ); // 打开一个记事本程序
}
}
public static void main(String[] args) throws Exception{
Runtime runtime = Runtime.getRuntime(); // Runtime.getRuntime()用来获取Runtime类的一个实例。
runtime.exec( " notepad " ); // 打开一个记事本程序
}
}
通过exec()方法还可以去编译和运行java的源文件。
代码
public
class
RuntimeTest {
public static void main(String[] args) {
Runtime rt = Runtime.getRuntime(); // 获取Runtime 类的实例
// System.out.println(rt.freeMemory());
// System.out.println(rt.totalMemory());
try {
// Process java.lang.Runtime.exec(String command)
// 执行一个外部程序来作为当前程序的一个子进程
// rt.exec("notepad");
// 也可以使用exec来编译JAVA的源文件。
rt.exec( " javac Hello.java " );
Process p = rt.exec( " java Hello " );
InputStream is = p.getInputStream(); // 获取输入流
int data;
while ((data = is.read()) != - 1 ) {
System.out.print(( char ) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Hello {
public static void main(String[] args) {
System.out.println( " Hello World " );
}
}
public static void main(String[] args) {
Runtime rt = Runtime.getRuntime(); // 获取Runtime 类的实例
// System.out.println(rt.freeMemory());
// System.out.println(rt.totalMemory());
try {
// Process java.lang.Runtime.exec(String command)
// 执行一个外部程序来作为当前程序的一个子进程
// rt.exec("notepad");
// 也可以使用exec来编译JAVA的源文件。
rt.exec( " javac Hello.java " );
Process p = rt.exec( " java Hello " );
InputStream is = p.getInputStream(); // 获取输入流
int data;
while ((data = is.read()) != - 1 ) {
System.out.print(( char ) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Hello {
public static void main(String[] args) {
System.out.println( " Hello World " );
}
}