java运行linux命令获得返回值的问题

Process process=Runtime. Runtime.getRuntime().exec("ps -ef | grep -v 进程名");然后你要使用线程不停地读取process.getErrorStream()和process.getInputStream(),注意一定要使用线程读,不能等待process执行完成后再读,因为缓存区大小固定,process往缓冲区里写时若缓冲区满了则process会等待缓冲...
java运行linux命令获得返回值的问题
Process process=Runtime. Runtime.getRuntime().exec("ps -ef | grep -v 进程名");然后你要使用线程不停地读取process.getErrorStream()和process.getInputStream(),注意一定要使用线程读,不能等待process执行完成后再读,因为缓存区大小固定,process往缓冲区里写时若缓冲区满了则process会等待缓冲区释放2014-01-21
Process myProc = null;
try {
myProc = Runtime.getRuntime().exec(cmd);
myProc.waitFor();
BufferedReader in = new BufferedReader(new InputStreamReader(myProc.getInputStream()));
String currentLine = "";
while((currentLine = in.readLine()) != null) {
if(currentLine.trim().length()>0){
list.add(currentLine.trim());
}
}
in.close();
} catch (IOException e) {
// e.printStackTrace();
}catch (Exception e) {
// e.printStackTrace();
}2014-01-24
就像 windows下使用 cmd /c 一样, Linux 下使用 sh -c
String[] cmd = {"/bin/sh","-c","ls /etc | grep release"};Process p = Runtime.getRuntime().exec(cmd);在 Stack overflow看到的,现在没有使用Linux,没法测试。
2014-01-21
mengvlog 阅读 180 次 更新于 2025-12-16 03:31:10 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部