Java 调用命令行有两种方式,ProcessBuilder 或 Runtime。
在使用 Runtime 时,有两点需要注意:
- 需要开启线程读取错误流,否则可能会造成进程阻塞
- 执行带管道或重定向的命令时需要拆成多个命令执行
Execs.exec(new String[]{"/bin/sh", "-c", "cat /proc/cpuinfo | grep 'model name' | awk '{ print $NF }'"});
细节请参考这个实现。
Java 调用命令行有两种方式,ProcessBuilder 或 Runtime。
在使用 Runtime 时,有两点需要注意:
Execs.exec(new String[]{"/bin/sh", "-c", "cat /proc/cpuinfo | grep 'model name' | awk '{ print $NF }'"});
细节请参考这个实现。