Java Runtime
类用于与Java运行时环境交互。Java Runtime
类提供了执行进程,调用GC,获取总内存和可用内存等的方法。一个java应用程序只有一个java.lang.Runtime
类实例。
Runtime.getRuntime()
方法返回Runtime
类的单例实例。
编号 | 方法 | 描述 |
---|---|---|
1 | public static Runtime getRuntime() |
返回Runtime 类的实例。 |
2 | public void exit(int status) |
终止当前的虚拟机。 |
3 | public void addShutdownHook(Thread hook) |
注册新的钩子线程。 |
4 | public Process exec(String command)throws IOException |
在单独的进程中执行给定的命令。 |
5 | public int availableProcessors() |
返回可用的处理器的编号。 |
6 | public long freeMemory() |
返回JVM中的可用内存量。 |
7 | public long totalMemory() |
返回JVM中的总内存量。 |
Java Runtime exec()方法
public class Runtime1{ public static void main(String args[])throws Exception{ Runtime.getRuntime().exec("notepad");//will open a new notepad } }
如何在Java执行关闭计算机系统
可以使用shutdown -s
命令关闭系统。 对于Windows操作系统,需要提供完整的关闭命令路径,例如:c:\\\\Windows\\\\System32\\\\shutdown
。
在这里可以使用-s switch
来关闭系统,-r switch
来重启系统,-t switch
来指定时间延迟。
public class Runtime2{ public static void main(String args[])throws Exception{ Runtime.getRuntime().exec("shutdown -s -t 0"); } }
如何在Java中关闭Windows系统
public class Runtime2{ public static void main(String args[])throws Exception{ Runtime.getRuntime().exec("c:\\\\Windows\\\\System32\\\\shutdown -s -t 0"); } }
如何在Java中重启Windows系统
public class Runtime3{ public static void main(String args[])throws Exception{ Runtime.getRuntime().exec("shutdown -r -t 0"); } }
Java Runtime availableProcessors()方法
public class Runtime4{ public static void main(String args[])throws Exception{ System.out.println(Runtime.getRuntime().availableProcessors()); } }
Java Runtime freeMemory()和totalMemory()方法
在给定的程序中,创建10000
个实例后,空闲内存将小于之前的空闲内存。 但是在gc()
调用之后,将获得更多的可用内存。
package com.zyiz; public class MemoryTest { public static void main(String args[]) throws Exception { Runtime r = Runtime.getRuntime(); System.out.println("Total Memory: " + r.totalMemory()); System.out.println("Free Memory: " + r.freeMemory()); for (int i = 0; i < 10000; i++) { new MemoryTest(); } System.out.println("After creating 10000 instance, Free Memory: " + r.freeMemory()); System.gc(); System.out.println("After gc(), Free Memory: " + r.freeMemory()); } }
执行上面示例代码,得到以下结果:
Total Memory: 128974848 Free Memory: 126930016 After creating 10000 instance, Free Memory: 126930016 After gc(), Free Memory: 127734760