java中Runtime类表示运行时操作类,是一个封装了JVM进程的类,每一个JVM都对应着一个Runtime的实例,此实例在Runtime运行的时候,为其实例化。。Runtime的构造方式是私有,就是采用了单例模式。
下面是一些常用的方法:
1.得到JVM的内存信息:
public
class
RuntimeDemo {
public
static
void
main(String[] args) {
Runtime runtime=Runtime. getRuntime();
//获取实例,单例模式
System.
out
.println(
"JVM最大内存量"
+runtime.maxMemory());
System.
out
.println(
"JVM在程序运行之前的内存空余量"
+runtime.freeMemory());
String s=
"like"
+
"say"
+
"hello"
+
"world"
;
System.
out
.println(s);
for
(
int
i=0;i<1000;i++){
s=s+i;
}
System.
out
.println(
"程序运行之后JVM内存空余量"
+runtime.freeMemory());
runtime.gc();
//进行垃圾回收
System.
out
.println(
"垃圾回收之后的空余量"
+runtime.freeMemory());
}
}
结果:
JVM最大内存量259522560
JVM在程序运行之前的内存空余量15536768
likesayhelloworld
程序运行之后JVM内存空余量13781456
垃圾回收之后的空余量15819328
2.Runtime类与Process类
Runtime类也可以直接调用本机程序
public
class
RuntimeDemo {
public
static
void
main(String[] args) {
Runtime runtime=Runtime. getRuntime();
//获取实例,单例模式
try
{
runtime.exec(
"notepad.exe"
);
//直接调用本机程序
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
结果:
你会看到屏幕上弹出一个日记本
现在我想让它5秒后自动关闭,那么就可以调用Process类的destroy方法
public
class
RuntimeDemo {
public
static
void
main(String[] args) {
Runtime runtime=Runtime. getRuntime();
//获取实例,单例模式
Process pro=
null
;
try
{
pro= runtime.exec(
"notepad.exe"
);
//直接调用本机程序
}
catch
(IOException e) {
e.printStackTrace();
}
try
{
Thread. sleep(5000);
//休眠5S
}
catch
(InterruptedException e) {
e.printStackTrace();
}
pro.destroy();
//销毁笔记本
}
}
结果:
弹出一个笔记本,5秒后消失