金氧

Java 执行命令

Java 调用命令行有两种方式,ProcessBuilder 或 Runtime。

在使用 Runtime 时,有两点需要注意:

  1. 需要开启线程读取错误流,否则可能会造成进程阻塞
  2. 执行带管道或重定向的命令时需要拆成多个命令执行
Execs.exec(new String[]{"/bin/sh", "-c", "cat /proc/cpuinfo | grep 'model name' | awk '{ print $NF }'"});

细节请参考这个实现

« MySQL 自动备份 Shell 脚本 Grub 恢复命令 »