不使用ProcessBuilder,我可以通过提示成功运行此命令。
winexe --user \administrator --password foo //192.168.1.13 "msiexec /qn /i \setup.msi"
我正在通过这个构造函数
创建我的ProcessBuilderProcessBuilder(String[] commands)
我传递给ProcessBuilder的String []参数如下
[0] winexe
[1] --user \administrator
[2] --password foo
[3] //192.168.1.13
[4] "msiexec /qn /i \setup.msi"
输出如下所示,所以我知道ProcessBuilder正在执行命令,除了我传入的参数似乎没有问题。谁能发现我做错了什么?
winexe version 0.90
This program may be freely redistributed under the terms of the GNU GPL
Usage: winexe [-?|--help] [--usage] [-d|--debuglevel DEBUGLEVEL]
[--debug-stderr] [-s|--configfile CONFIGFILE] [--option=name=value]
[-l|--log-basename LOGFILEBASE] [--leak-report] [--leak-report-full]
[-R|--name-resolve NAME-RESOLVE-ORDER]
...
答案 0 :(得分:8)
您将ProcessBuilder命令行令牌与您尝试执行的命令的逻辑分组混淆。这个命令不接受参数“--password< space> foo”,但是数组的第3个元素仍尝试通过这样的事情。
你试过吗
[0] winexe
[1] --user
[2] \administrator
[3] --password
[4] foo
[5] //192.168.1.13
[6] msiexec /qn /i \setup.msi