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

ProcessBuilder与Runtime.exec()的区别

ProcessBuilder与Runtime.exec()的区别

Go
肥皂起泡泡 2019-10-12 19:07:24
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 回答

?
元芳怎么了

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

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

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

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

shell$ "command with args"



查看完整回答
反对 回复 2019-10-13
  • 3 回答
  • 0 关注
  • 474 浏览
慕课专栏
更多

添加回答

举报

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