设为首页 加入收藏

TOP

Java获取Linux下Top命令的执行结果
2014-11-24 07:32:32 来源: 作者: 【 】 浏览:1
Tags:Java 获取 Linux Top 命令 执行 结果

package com.ncs_cyber.util;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.Random;


public class GwUtil {
private static Random r = new Random();


/**
* 功能:执行CMD命令,返回命令结果
*/
public static String execByFile(String cmd) throws Exception {
String filename = null;
StringBuffer sb = new StringBuffer("");
BufferedReader bufferedReader = null;
Process process = null;
File file = null;
r.setSeed(99999);


if (cmd == null) {
return null;
}
try {
String ls_1;
// 生成临时文件,文件名随机
filename = "/tmp/gwtemp" + Long.toString(Math.abs(r.nextLong()))
+ ".sh";


file = new File(filename);
while (file.exists()) {
filename = "/tmp/gwtemp"
+ Long.toString(Math.abs(r.nextLong())) + ".sh";
file = new File(filename);
}
String execmd = new String("sh " + filename);// 执行文件的命令
FileWriter filewriter = new FileWriter(file, false);
filewriter.write("#! /bin/sh");
// Log.debug("do cmd:" + cmd + "\n");


filewriter.write("\n" + cmd + "\n");// 将命令写入文件
filewriter.close();
// Log.debug("run cmd\n");
process = Runtime.getRuntime().exec(execmd); // 执行临时的可执行文件
// Log.debug("run cmd over\n");
// 得到结果
bufferedReader = new BufferedReader(new InputStreamReader(process
.getInputStream()));
while ((ls_1 = bufferedReader.readLine()) != null) {
sb.append(ls_1 + "\n");
}
} catch (Exception e) {
throw new Exception("can not exec the cmd:" + cmd);
} finally { // 清理
try {
filename = null;
if (file != null) {
file.delete();
file = null;
}
if (bufferedReader != null) {
bufferedReader.close();
bufferedReader = null;
}


if (process != null) {
process.destroy();
process = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return sb.toString();
}
public static void main(String args[]){
try {
GwUtil.execByFile("top -bn -1>/tmp/test.txt;cat/tmp/test.txt");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java 设置输出的图片质量 下一篇Java 加载Properties文件的几种方..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 并发工具类:提 (2025-12-25 20:25:44)
·Java面试技巧:如何 (2025-12-25 20:25:41)
·Java并发编程中的线 (2025-12-25 20:25:38)
·C 语言 - cppreferen (2025-12-25 19:50:27)
·《C 语言入门教程》 (2025-12-25 19:50:23)