Java执行Shell语句方法比较

来自个人维基
跳转至: 导航搜索

方法一:

String[] cmdLin = {"/bin/sh", "-c", command};
pro = runTime.exec(cmdLin);

方法二:

String[] cmdLin = command.split(" "); //分割参数
pro = runTime.exec(cmdLin);


方法一相当于在terminal中执行:

$:/bin/sh -c $command

而这则会另外启用一个thread,而且这个thread的handle我们在代码不易取得,当执行多次就会有不少这样的thread存在。

方法二则没有这个问题,因为其执行的只是这个命令:

$:$command
  • ps:这里command前面的意思为取command实际内容的示意标识