String cmd = "";
Runtime rt = Runtime.getRuntime();
Process p = null;
try {
p = rt.exec(cmd);
} catch (Exception e) {
} finally {
if (p != null) {
try {
p.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
p.destroy();
}
}
以前也用过Process执行外部命令,比如备份mysql之内的。一直没用关闭过Process。这次写监控在linux环境中获取内存和cpu等信息定期发送jms到监控服务器。由于没有关闭process,在运行一段时间之后文件描述符被用完导致无法登陆系统了。然后才知道原来这个也是要关闭的。。代码如上。