publicclassTest{publicstaticvoidmain(String[]args){//Stringcomm="top-n1|sed-n'3p'|awk'{print$2}'|cut-d%-f1";//无法执行Stringcomm="echo'adsfasdf'";//可以执行execLinuxComm(...
public class Test {
public static void main(String[] args) {
//String comm="top -n 1 | sed -n '3p' | awk '{print $2}' | cut -d % -f 1"; //无法执行
String comm="echo 'adsfasdf'"; //可以执行
execLinuxComm(comm);
}
public static String execLinuxComm(String comm) { //传入一条Linux指令,返回执行结果
String result = "";
try {
Process ps = Runtime.getRuntime().exec(new String[] { "/bin/sh", "-c", comm });
BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
result = sb.toString();
System.out.println("result:"+result);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
无法执行的指令在Linux的Terminal是可以输出结果的但在Java中却无法输出结果,求解
展开