为了账号安全,请及时绑定邮箱和手机立即绑定

ProcessBuilder与Runtime.exec()的区别

ProcessBuilder与Runtime.exec()的区别

慕虎7371278 2019-07-22 20:21:33
ProcessBuilder与Runtime.exec()的区别我试图从java代码中执行一个外部命令,但我注意到Runtime.getRuntime().exec(...)和new Process(...).start().使用时Runtime:Process p = Runtime.getRuntime().exec(installation_path +                                         uninstall_path +                                         uninstall_command +                                         uninstall_arguments);p.waitFor();exitValue为0,命令终止为ok。然而,与ProcessBuilder:Process p = (new ProcessBuilder(installation_path +                                      uninstall_path +                                  uninstall_command,                                  uninstall_arguments)).start();p.waitFor();退出值为1001,命令在中间终止,尽管waitFor退货。我该怎么做才能解决这个问题?ProcessBuilder?
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

看看Runtime.getRuntime().exec()将字符串命令传递给ProcessBuilder..它使用令牌程序并将命令分解为单个令牌,然后调用exec(String[] cmdarray, ......)构造ProcessBuilder.

如果您构造ProcessBuilder使用字符串数组而不是单个字符串,您将得到相同的结果。

这个ProcessBuilder构造函数采用String...因此,将整个命令作为单个字符串传递与在终端中以引号调用该命令具有相同的效果:

shell$ "command with args"


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 2391 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信