顾名思义,Runtime获取运行时的系统信息或运行时处理一些系统的工作。
这里主要列举几个常用的功能。
执行外部命令
有时候我们可能需要调用一些外部的系统命令或者其他应用程序,我们就可以使用本函数,但是需要防止意外安全情况的发生,千万不要做出删库跑路的行为。该函数如下
Runtime.getRuntime().exec();
下边写一个例子如何调用,为了安全起见,我自己写一个windows下的批处理文件,文件命名为:mybat.bat 并保存于D盘,文件内容为:
echo "aaaaaa" >> d:\myfileok.txt
现在我们执行如下Java代码:
Process prc = Runtime.getRuntime().exec("D:\\mybat.bat"); try { prc.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); }
每执行一次就会发现d:\myfileok.txt的内容就会增加一行。
查看内存使用情况
这两点不多说,很实用。假如你想做一个系统监控程序,监控你的系统运行状态,并在在某种阈值的情况下处理某些情况(如给系统管理员发送通知等,让其他系统参与到负载均衡中来)这个就派上用场了。
Runtime.getRuntime().freeMemory(); Runtime.getRuntime().totalMemory(); maxMemory()
增加虚拟器结束的钩子功能
直接上例子代码,具体可以自己体会。
Runtime.getRuntime().addShutdownHook(new Thread(){ @Override public void run() { System.out.println("哎呀,我要死了,这里留点遗言了啊,哈哈"); } });