当运行另一个命令时,java runtime.exec运行得越来越慢。
我给“runtime.getruntime().exec”计时了大约三天,这个函数花费了越来越多的时间,从0/1毫秒到500多毫秒。。。
但是当我在shell脚本中运行“ipmitoolraw0x3e0x3131”时,时间开销通常是。
谁知道这个问题的原因是什么?谢谢。
代码如下:
String shStr="ipmitool raw 0x3e 0x31 3 1";
public static List<String> runShell(String shStr) throws Exception {
List<String> strList = new ArrayList<String>();
long start_time = System.currentTimeMillis();
Process process;
process = Runtime.getRuntime().exec(new String[] {"/bin/sh","-c",shStr},null,null);
long time1 = System.currentTimeMillis();
System.out.println("runShell exec time cost" + (time1 - start_time));
InputStreamReader ir = new InputStreamReader(process
.getInputStream());
InputStreamReader stderrReader = new
InputStreamReader(process.getErrorStream());
LineNumberReader input = new LineNumberReader(ir);
LineNumberReader errInput = new LineNumberReader(stderrReader);
String line;
process.waitFor();
while ((line = input.readLine()) != null) {
strList.add(line);
}
System.out.println("ERROR");
while ((line = errInput.readLine()) != null) {
System.out.println(line);
}
return strList;
}
暂无答案!
目前还没有任何答案,快来回答吧!